第2章从零开始编制VB程序本章要点创建简单的应用程序对象的属性、方法和事件窗体的外观设计、文字显示、常用事件和方法以及多窗体程序命令按钮的焦点概念、常用属性、方法和事件标签的外观设计、常用事件和方法,为其他控件提供访问键文本框的简单应用,多行、密码和只读文本框,使用选定的文本开发VB应用程序的一般步骤在第1章中,概括介绍了VisualBasic6.0的特点、功能、集成环境以及学好VB的方法。从本章开始,将循序渐进地学习如何创建VB应用程序。本章主要介绍编制VB应用程序的方法、步骤以及窗体和几种基本控件的使用。2.1创建最简单的应用程序要建立应用程序,首先要明确这个应用程序执行后窗体的外观和内容,如有哪些控件,控件的外观,控件之间的关系,对控件进行操作时将发生哪些事件等。本节通过简单的实例说明创建VB应用程序的一般步骤。2.1.1不编写代码的简单程序【例2.1】创建一个无须编写代码的简单程序,程序运行时显示“Hello,World!”。(1)创建工程按1.3节所述的方法启动VisualBasic6.0,在【新建工程】对话框中选择【标准EXE】,单击【打开】按钮,进入VisualBasic集成开发环境。。(2)设计界面本程序通过标签控件显示文字。双击工具箱标签控件(Label)图标,在窗体上添加一个标签(Label1)。若需调整控件的大小,可以拖动控件四周的八个小方框(尺寸柄)。若需移动控件,可将鼠标指针指向控件内拖动。窗体大小的调整与控件相似,但只有右下角的三个实心尺寸柄可用。界面设计如图2.1所示。图2.1设计界面(3)设置属性在VB中,窗体和控件统称为对象。对象建立好后,就要为其设置属性。属性是对象特征的表示,各类对象都有默认的属性值,设置对象的属性是为了使对象符合应用程序的需要。设置标签属性:在窗体设计窗口选定标签,在属性窗口将Caption属性设置为“Hello,World!”。单击Font属性右侧的按钮,在如图2.2所示的【字体】对话框中将字体大小设置为二号。在窗体设计窗口调整标签控件的大小,使“Hello,World!”显示为一行。通过【格式】菜单中的【在窗体中居中对齐】菜单命令将标签置于窗体中央。设置窗体属性:单击窗体空白处将其选定,在属性窗口将窗体的Caption属性值改为“我的第一个程序“。设置属性后的用户界面如图2.3所示。图2.2【字体】对话框图2.3设置属性(4)运行程序单击工具栏中【运行】按钮(►)或按F5键运行应用程序。程序运行结果如图2.4所示。图2.4运行程序(5)保存工程选择【文件】菜单中的【保存工程】菜单项或单击工具栏【保存】按钮,打开如图2.5所示的【文件另存为】对话框。系统首先要求保存的是所有窗体文件(.frm),最后才是工程文件(.vbp)。VB窗体的默认文件名默认是FormX.frm(X为序号),工程的文件名是“工程X.vbp”。建议在保存时采用直观的文件名,如本例将窗体文件命名为frmHello.frm,工程文件为Hello.vbp。图2.5保存文件至此,一个完整的小程序制作结束。整个过程看似复杂,实际上只需几分钟即可完成。2.1.2含有简单代码的程序上面的程序过于简单,它没有提供与用户交互的功能。要想使应用程序能够响应用户的操作,就需要编写程序代码。在VB中,许多功能已封装在对象内部,例如,文本框本身应有各种文本编辑功能,文件列表框具有列出当前目录下的文件的功能。因此在VB中只需要编写少量的代码来满足某些特定功能的需求。【例2.2】编制一个含有简单代码的程序。程序界面和运行结果如图2.6所示。图2.6例2.2运行结果(1)创建工程启动VB时自动创建新工程的方法如闪所述。如果已经进入VB集成开发环境,可执行【文件】|【新建工程】菜单命令,创建一个新工程。(2)设计界面按照图2.6所示的界面,单击工具箱文本框控件图标,在窗体上画出一个文本框。选择工具箱命令按钮图标,在窗体上画出三个命令按钮。调整好各控件的大小和位置。(3)设置属性窗体和各控件的属性设置如表2.1所示。表2.1窗体和控件属性设置(4)编写代码在本例中和谐代码的任务是当用户单击【显示】、【清除】和【结束】三个命令按钮时分别做出响应。正如第1章所述,VB采用事件驱动的工作方式,当用户单击某个按钮时,就发生该按钮的单击(Click)事件。我们要做的就是处理这一事件,即为事件过程编写代码。①为【显示】按钮的单击事件编写代码。在窗体设计窗口双击【显示】按钮,自动打开如图2.7所示的代码窗口,光标停留在该按钮的Click事件过程中。从图2.7中可以看出,在代码编辑区自动插入了按钮Click事件的“过程模板”;起始语句、一个空行和结束语句。因此,在编写代码时不必输入事件过程的起始和结束语句,只需编写要进行的操作即可。本例要求当用户单击【显示】按钮时,在文本框中显示“欢迎进入VB殿堂!”。在图2.7所示的过程模板空行处按Tab键(默认缩进4个空格),然后输入以下代码:Text1.Text=欢迎进入VB殿堂!图2.7过程模板输入代码后的结果如图2.8所示。图2.8输入代码②为【清除】按钮的单击事件编写代码。在代码窗口单击对象列表框右端的下拉按钮,在图2.9所示的下拉列表框中选择Command2,系统自动插入该按钮单击事件的过程模板,在光标停留处按Tab键后输入以下代码:Text1.Text=图2.9选择编写代码的对象③为【结束】按钮的单击事件编写代码。在对象下拉列表框中选择Command3,其单击事件添加以下代码(End语句用于结束程序运行):End(5)运行程序单击工具栏中【运行】按钮(►)或按F5键运行应用程序。运行时单击【显示】按钮,文本框中将显示“欢迎进入VB殿堂!”;单击【清除】按钮,将使文本框清空;单击【结束】按钮结束程序运行。(6)保存工程在应用程序设计的任何阶段都可以保存本工程的所有文件,不必等到运行通过后才保存。对于较大的程序,应注意随时存盘,以免因突发事故导致前功尽弃。【实践】:(请某位同学来做这个程序)编写程序,点击”显示”按钮后,实现如下界面.2.2对象2.2.1对象是什么对象(Object)的原意是指物体,它是现实世界中事物的抽象表示。对象在实际生活中随处可见。例如,一棵树,一个人,一台计算机,您正在看的这本书等等都是对象。在面向对象的程序设计(ObjectOrientedProgramming,OOP)中,对象是具有属性和方法,且能对特定事件做出反应的实体,如窗体、文本框、命令按钮等都是对象。如窗体、文本框、命令按钮都是对象。对象是由代码和数据组合而成的封装体,可以作为一个整体来处理,即对象是数据和代码的集合。对象可以是应用程序的一部分,如控件或窗体,也可以是整个应用程序。对象有3个要素:属性、方法和事件。对象是可以分类的。例如,轿车、卡车、面包车等各种各样的汽车属于汽车这个“类”,张三、李四等个人属于人这个“类”。类(Class)是同种对象的集合与抽象。对象是类的具体化,是类的实例,而类是创建对象实例的模板。对象一旦建立,即可改变其属性。例如,在例2.2中,我们使用了三个命令按钮对象,它们都是命令按钮类(CommandButton)的一个实例,即用该类模板建立的一个对象。这些对象共享一组由类定义的通用的特征的功能(属性、方法和事件)。但是,每个对象都有它自己的名字,可以放在窗体的不同位置,可以有自己的事件过程等。在1.3.6节曾提到,在属性窗口(图1.5)的对象下拉列表框中可以看到对象的名称及其所属的类,其中对象名称显示为粗体,对象所属的类显示为标准字体。2.2.2对象的属性、事件和方法VB是以对象为基础的程序设计语言。在VB中,窗体、控件等对象具有自己的属性和方法,能对特定事件做出反应。打个比方,有一个小伙子名叫张三,身高1.80cm,某日在街上散步,走到十字路口时突然看到红色信号灯亮了,这时他停下来,等绿灯亮时再走。在这里,张三这个人就是一个对象,姓名、身高等特征是他的“属性”,走、看、停下来等动作(行为)是他的“方法”,“红灯亮了”是他能够响应的“事件”。下面分别介绍对象的属性、事件和方法。1.属性属性是用来描述对象的数据,可看作的静态特征,不同的对象具有不同的属性。通过对属性值的改变,可以使对象的状态发生变化。VB中的对象都有许多属性,它们是用来描述和反映对象特性的参数,如控件的名称、标题、颜色、字体以及是否可见等。要想学好VB,必须学会使用属性来定制窗体和窗体中的控件。但这并不是说必须掌握所有属性的用法。对于初学者来说,只需掌握几个最常用的基本属性。一般情况下,对于大多数属性,使用VB提供的默认值即可。随着编程经验的增加,可以根据应用程序的需要,逐步掌握某些特殊属性的应用。(1)属性的设置在VisualBasic6.0中,对象属性的设置有两种方法:①在属性窗口直接设置。②在程序代码中通过赋值实现,格式如下:[对象名.]属性=属性值若对象是当前窗体,可省略对象名。例如:Text1.Text=”Hello!”'将文本框对象Text1的Text属性设置为“Hello!”Caption=“欢迎”'将当前窗体的Caption属性设置为“欢迎”在上面的代码中,单引号(')是注释引导符,它后面的内容是注释。【演示】修改学生完成的练习题目来演示“属性设置”的两种方法。并提醒学生注意第二种方式是对窗体的属性设置。要求学生思考如何在点击“显示”按钮后,如何更把按钮的Caption修改为:“隐藏”。(2)对象的命名Name(名称)属性是所有对象都具有的属性,在属性窗口中它位于属性列表框的第一行,代表对象的名称。对象名称主要用于在程序代码中引用对象。在一个窗体中,每个对象的名称必须保证惟一性,即不得有重名对象。在建立窗体和控件对象时,VB会自动提供一个默认的名称,如Form1、Text1、Command3等,但这些名称未提供有关这个对象的更多信息。为了提高程序的可读性,在较复杂的程序中,对那些有可能在代码中被引用的对象,推荐采用能反映对象类型和功能的名称,如frmHello、txtAge、cmdEnd等。其中,前三个字母是VB约定的对象名称的前缀,代表对象类型(对象所属的类),用对象类型的缩写表示,紧跟癈后的是描述对象功能的部分。对象名称最好采用大小写混合的拼写形式,前缀用小写,功能描述部分的首字母大写,如cmdOK、txtUser等。这样做有利于检查错误,且可提高可读性。常用对象类型及前缀见表2.2。表2.2常用对象类型及前缀对象类型前缀对象类型前缀对象类型前缀Adodc(ADO数据控件)adoFileListBox(文件列表框)FilMenu(菜单)mnuCheckBox(复选框)chkForm(窗体)frmOptionButton(单选按钮)optComboBox(组合框)cboFrame(框架)fraPictureBox(图片框)picCommandButton(命令按钮)cmdHscrollBar(水平滚动条)hsbRichTextBox(多格式文本)rtfCommonDialog(通用对话框)dlgImage(图像框)imgShape(形状)shpDataGrid(数据网格)dgdLabel(标签)lblTextBox(文本框)txtDirListBox(目录列表框)dirLine(直线)linTimer(定时器)tmrDriveListBox(驱动器列表框)drvListBox(列表框)lstVscrollBar(垂直滚动条)vsb对于那些在代码中根本不访问的对象(如仅用于显示静态文本的标签控件),则不妨仍采用系统默认名称。此外,修改对象名称最好在开始编写代码之前进行,否则将会给整个应用程序的设计和维护带来困难。2.事件事件是对象对外部变化的响应,如有人打110,值班公安人员立即响应。事件是由用户或系统触发,是预先定义好的,可以由对象识别的操作。不同的对象所能识别的事件不同。例如,窗体能识别单击和双击事件,而命令按钮能识别单击却不能识别双击事件。这就像球迷们会为运动员加油,而不