山东科技大学(泰安)信息工程系1第二章VB基本控件及简单程序设计(1)理解面向对象程序设计的方法;(2)掌握一个VisualBasic应用程序的组成;(3)掌握开发一个VisualBasic应用程序的一般步骤。本章主要任务:山东科技大学(泰安)信息工程系22.1VB中的基本概念一、对象与类1.对象是基本的运行时的实体,如窗体、各种控件等,它包括作用于对象的操作(方法)和对象的响应(事件)。将数据和处理这些数据的过程封装在一起。2.类类是一个抽象的整体概念,对象是类的实例化。类与对象是面向对象程序设计语言的基础。以“汽车”为例,说明类与对象的关系。汽车是一个笼统的名称,是整体概念,我们把汽车看成一个“类”,一辆辆具体的汽车(比如你的汽车)就是这个类的实例,也就是这个类的对象。山东科技大学(泰安)信息工程系3工具箱的各种控件并不是对象,而是代表了各个不同的类。通过类的实例化,可以得到真正的对象。当在窗体上画一个控件时,就将类转换为对象,即创建了一个控件对象,也简称为控件。VB中的类与对象2.1VB中的基本概念山东科技大学(泰安)信息工程系43、对象的建立和命名(1)对象的建立方法一:单击工具箱控件对象在窗体上按住左键拖拉到所需要的大小后释放。方法二:双击工具箱控件对象,则立即在窗体出现一个默认大小的对象框。(2)编辑对象先选中对象(单击对象),放大、缩小删除对象复制对象2.1VB中的基本概念山东科技大学(泰安)信息工程系5(3)对象的命名每一个对象都有有自己的名字。每个窗体、控件对象在建立时VB系统给出了一个默认名。用户可通过属性窗口设置(名称)来给对象命名。命名的原则:1)必须由字母或汉字开头、随后可以是字母、汉字、数字、下划线(最好不用)串组成。2)长度=255个字符。智能化命名规则(参考):用前3个小写字母组成前缀(指明对象的类型)和表示该对象作用的缩写字母组成。例如用cmdDisp命名一个带有“显示”字样的命令按钮。2.1VB中的基本概念山东科技大学(泰安)信息工程系6二、属性(Property)属性,即对象中的数据,所有对象都有自己的属性。它们是用来描述和反映对象特征的参数。例如:控件名称(Name)、标题(Caption)、颜色(Color)、字体(FontName)等属性决定了对象展现给用户的界面具有什么样的外观及功能。对象属性设置的方法:方法一:在设计模式下,通过属性窗口直接设置对象的属性。方法二:在程序的代码中通过赋值实现,其格式为:对象.属性=属性值例如:cmdDisp.Caption=“显示”2.1VB中的基本概念山东科技大学(泰安)信息工程系7三、事件(Event)及事件过程(EventProcedure)事件——可被对象识别的动作。事件过程——是指附在该对象上的程序代码,是事件触发后处理的程序。事件过程的形式如下:Sub对象名_事件过程名[(参数列表)]…..(事件过程代码)EndSub例如:SubcmdHide_Click()CmdHide.Visible=FalseEndSub2.1VB中的基本概念山东科技大学(泰安)信息工程系8四、方法(Method)在对象上可操作的过程,是VB系统提供的一种特殊的过程和函数——方法。方法是面向对象的,所以对象的方法调用一般要指明对象。对象方法调用形式:[对象.]方法[参数列表]如省略对象,表示对当前对象,一般指窗体。例如:Form1.PrintVB程序设计2.1VB中的基本概念山东科技大学(泰安)信息工程系9在传统的面向过程的应用程序中,执行哪一部分代码和按何种顺序执行代码都由程序本身控制。而在面向对象的程序设计中,编程人员要以“对象”为中心来设计模块,而不是以“过程”为中心来考虑应用程序的结构,此外,在事件驱动应用程序中,代码不是按预定的顺序执行,而是在响应不同的事件时执行不同的代码段。五、VB应用程序的工作方式VB应用程序采用的是以事件驱动应用程序的工作方式。山东科技大学(泰安)信息工程系10事件是可以由窗体或控件识别的操作。在响应事件时,事件驱动应用程序执行指定的代码。事件可以由用户操作触发,也可以由来自操作系统或其他应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此,在事件驱动应用程序中,每次运行时所执行的代码和所经过的“路径”是不一样的。山东科技大学(泰安)信息工程系11VisualBasic的每个窗体和控件都有一个预定义的事件集,当其中的某个事件发生,并且在相关联的事件过程中存在代码时,VisualBasic将执行这些代码。尽管VisualBasic中的对象能自动识别预定义的事件集,但必须通过代码判定它们是否响应具体事件以及如何响应具体事件,代码(即事件过程)与每个事件对应。为了让窗体或控件响应某个事件,必须把代码放入这个事件的事件过程之中。山东科技大学(泰安)信息工程系12对象所能识别的事件类型有很多种,但多数类型为大多数对象所共有。例如,大多数对象都能识别Click事件,即单击事件。如果单击窗体,则执行窗体的单击事件过程中的代码;如果单击命令按钮,则执行命令按钮的单击事件过程中的代码。此外,某些事件可以在运行期间触发。例如,当在运行期间改变文本框中的文本时,将引发文本框的Change事件,如果Change事件过程中含有代码,则执行这些代码。山东科技大学(泰安)信息工程系13五、VB应用程序的工作方式VB应用程序采用的是以事件驱动应用程序的工作方式。下面是事件驱动应用程序中的典型工作方式:1、启动应用程序,装载和显示窗体。2、窗体(或窗体上的控件)接收事件。事件可由用户引发(例如通过键盘或鼠标操作),可由系统引发(例如定时器事件),也可由代码间接引发(例如当代码装载窗体时的Load事件)。3、如果在相应的事件过程中已编写了相应的程序代码,就执行该代码。4、应用程序等待下一次事件。2.1VB中的基本概念山东科技大学(泰安)信息工程系14一、创建应用程序的步骤:分析问题,确定程序要完成什么任务,按下面的步骤创建应用程序。(1)新建工程。创建一个应用程序首先要打开一个新的工程。(2)创建应用程序界面。(3)设置属性值。(4)对象事件过程的编程。(5)保存文件。(6)程序运行与调试;再次保存修改后的程序。2.2简单应用程序的建立山东科技大学(泰安)信息工程系151.建立用户界面用户界面由对象,即窗体和控件组成,所有的控件都放在窗体上(一个窗体最多可容纳255个控件),程序中的所有信息都要通过窗体显示出来,它是应用程序的最终用户界面。在应用程序中要用到哪些控件,就在窗体上建立相应的控件。程序运行后,将在屏幕上显示由窗体和控件组成的用户界面。启动VisualBasic后,屏幕上将显示一个窗体,默认名称为Form1,可以在这个窗体上设置用户界面。如果要建立新的窗体,可以单击“工程”→“添加窗体”命令来实现。山东科技大学(泰安)信息工程系162.设置窗体和控件的属性建立界面后,就可以设置窗体和每个控件的属性。在实际的应用程序设计中,建立界面和设置属性可以同时进行,即每画完一个控件,接着就设置该控件的属性。当然,也可以在所有的对象建立完之后再回过头来设置每个对象的属性。究竟用哪种方法,可以根据自己的习惯选定,不必拘泥。可以通过不同的方式设置窗体或控件的属性,具体操作见前面。山东科技大学(泰安)信息工程系173.编写代码如前所述,VisualBasic采用事件驱动编程机制,因此大部分程序都是针对窗体中各个控件所能支持的方法或事件编写的,这样的程序称为事件过程。例如,命令按钮可以接收鼠标事件,如果单击该按钮,鼠标事件就调用相应的事件过程来做出响应。在多数情况下,特别是小型应用程序,所编写的程序通常都由事件过程组成,即针对控件或窗体的事件编写代码。山东科技大学(泰安)信息工程系18可以用以下4种方法进入事件过程(即打开“代码窗口”):(1)双击已建立好的控件。(2)单击“视图”→“代码窗口”命令。(3)按F7键。(4)单击“工程资源管理器”窗口中的“查看代码”按钮。进入事件过程后,可以编写或修改相应的事件过程代码,具体方法将在下面介绍。山东科技大学(泰安)信息工程系19程序要求:在屏幕上开辟一个窗口,窗口的下部有3个命令按钮,其中左边按钮中标有“请单击此按钮”;中间按钮中标有“清屏”;右边按钮中标有“程序结束”。当用鼠标单击左边按钮时,屏幕上部的文本框中显示“欢迎使用VisualBasic6.0中文版”;如果单击中间按钮,则清除文本框中显示的内容;如果单击右边的按钮,则结束程序。山东科技大学(泰安)信息工程系202.3程序的保存、装入、运行及组成2.3.1保存程序VisualBasic应用程序可以用4种类型的文件保存。一类是单独的窗体文件,扩展名为.frm;一类是公用的标准模块文件,扩展名为.bas;第三类是类模块文件,扩展名为.cls(本书不涉及类模块文件);第四类是工程文件,这种文件由若干个窗体和模块组成,扩展名为.vbp。除上面4类文件外,还有其他一些文件类型,例如工程组文件(.vbg)、资源文件(.rc)等。在保存工程文件之前,应先分别保存窗体文件和标准模块文件(如果存在)。山东科技大学(泰安)信息工程系212.3.2程序的装入用上面的操作可以把应用程序以文件的形式保存到磁盘上。退出VisualBasic或关机后,磁盘上的文件仍然存在。下次开机并启动VisualBasic后,可以把保存在磁盘上的程序装入内存,以便运行或对其进行修改。如前所述,一个应用程序包括4类文件,即窗体文件、标准模块文件、类模块文件和工程文件,这4类文件都有自己的文件名。但只要装入工程文件,就可以自动把与该工程有关的其他3类文件装入内存。山东科技大学(泰安)信息工程系222.3.3程序的运行设计完程序并存入磁盘后,就可以运行程序。运行程序有两个目的,一是输出结果,二是发现错误。在VisualBasic环境中,程序可以用解释方式执行,也可以生成可执行文件(.EXE)。山东科技大学(泰安)信息工程系232.3.4VisualBasic应用程序的构成如前所述,VisualBasic是事件驱动型语言,无论程序的结构还是工作方式,都与传统程序设计语言不一样。一个VisualBasic应用程序也称为一个工程,工程是用来管理构成应用程序的所有文件的,工程文件主要由3类文件模块组成,即窗体模块(.frm)、标准模块(.bas)和类模块(.cls),它们的关系如图2.19所示。山东科技大学(泰安)信息工程系24一个VB应用程序中各主要文件的结构关系如下图:P322.3程序的保存、装入、运行及组成山东科技大学(泰安)信息工程系251.窗体模块在VisualBasic中,一个应用程序包含一个或多个窗体模块,每个窗体模块包含窗体本身的数据(属性)、方法和事件过程(即代码部分,其中有为相应特定事件而执行的命令)。窗体还含有控件,每个控件都有自己相对应的属性、方法和事件过程集。除事件过程外,窗体模块中还可以含有用户自定义的通用过程和函数过程,它可以被窗体模块中的任何事件过程调用。山东科技大学(泰安)信息工程系262.标准模块标准模块完全由代码组成,这些代码不与具体的窗体或控件相关联。在标准模块中,可以声明全局变量,也可以定义函数过程或子程序过程。标准模块中的全局变量可以被工程中的任何模块引用,而公用过程可以被窗体模块中的任何事件调用。山东科技大学(泰安)信息工程系273.类模块类模块与窗体模块类似,只是没有可见的用户界面。可以使用类模块创建含有方法和属性代码的自己的对象,这些对象可以被应用程序内的过程调用。可以把类模块看作是没有物理表示的控件。标准模块只包含代码,而类模块既包含代码又包含数据。山东科技大学(泰安)信息工程系28三、一个简单的VB程序的创建例2-6设计一程序,当程序运行后,在窗体的正中间显示“你好!请输入你的姓名”,焦点定在其下的文本框中(如图2-6所示),当用户输入姓名并单击