件过程代码永远不执行。这种程序执行方式和传统的面向过程的应用程序执行方式完全不一样。因此,一个典型的VB应用程序的执行步骤可分解为:
◆ 启动应用程序,装载和显示窗体
◆ 等待某事件发生,事件发生后,执行相应事件过程。本步骤重复执行,直至应用程
序结束。
【注意】在一个对象上可能同时发生多个事件,如单击鼠标,同时发生了Click,MouseDown,MouseUp事件,但用户写程序时,仅对需要的事件过程编写代码,无处理过程代码的事件为空事件过程,系统对空事件过程不作处理。过程模板是系统自动生成,无需用户输入(自定义过程除外)。 1.3.2.3 VB控件对象的基本操作
用VB进行应用程序设计的过程,实际上就是与一组对象进行交互的过程,VB控件对象使用最为频繁,因此,准确理解控件对象,掌握控件对象(以下简称控件)的基本操作,如建立、命名、选定、复制、删除等,是设计VB应用程序的基础,本小节将介绍VB标准控件的基本操作。
1. 控件的建立(画法)
在窗体上画(建立)一个控件的方法有两种:
◆ 直接在工具箱中双击所需控件图标,如文本框图标,在窗体上即出现一个默认大小
的对象框,用户可在窗体中对其作缩放及移动操作。
◆ 单击工具箱中相应控件图标如文本框图标,将鼠标移到窗体上,此时鼠标光标变为
“+”号(“+”号的中心即为所需控件定位的左上角),将“+”号移到窗体适当位置,按下鼠标左键向右下方拖动至所需大小后释放。
【注意】每单击一次工具箱中相应的控件图标,只能在窗体上画一个相应的控件,如果要画多个某种类型控件,必须多次单击相应的控件图标。
2. 控件的选定
刚画完一个控件后,在该控件的边框上有8个黑色小方块,称为控制柄,此时该控件叫做活动控件或当前控件,对控件的所有操作都是针对活动控件来进行。因此,为了对一个控件进行后续操作,必须先将该控件“激活”。方法很简单,只需单击欲操作的对象就可“激活”,也称为选定了该对象。
如果要同时选定多个对象,有两种方法:
◆ 先选定一个对象,按住Ctrl(或Shift)键不放,再分别单击其它要选定的控件。 ◆ 和Windows下选定多个连续文件或文件夹相似,按下鼠标左键拖动鼠标光标,将欲
选定的对象包围在一虚线框中,再释放。
选定多个对象后,属性窗口中只显示它们共同的属性,如果修改其属性值,则被选定的所有控件的属性都将作相应改变,可同时对多个对象进行相同操作。在被选定的多个控件中,有一个控件的控制柄是实心小方块(其它为空心),这个控件称为“基准控件”。当对被选择的控件进行对齐、调整大小等操作时,将以“基准控件”为准。
3. 控件的复制
复制(拷贝)一个控件步骤如下:
◆ 选定待复制控件,使之呈活动状态。
◆ 单击“编辑”菜单中“复制”命令,将把活动控件复制到剪贴板上。
◆ 执行“编辑”菜单中的“粘贴”,这时屏幕上将显示是否要创建控件数组的对话框,
单击对话框中的“否”按钮,则复制了一个标题(Caption)属性相同而名称(Name)属性不同的控件对象。
【注意】对初学者,最好不要用“复制”和“粘贴”方法来建立控件,因为这样做很容易不小心建成控件数组,有关控件数组的知识将在第四章中学习。
4. 控件的删除
要删除一个控件对象,只需选定该对象,将其变为活动控件,按Delete键即可。 5. 控件的移动和缩放
当控件处于活动状态时,把鼠标光标移到控件边框内任何位置,按住鼠标左键拖动,可将控件移到窗体上任何位置再释放。
对被激活了的控件,直接用鼠标拖拉上、下、左、右四个小方块(控制柄)中的某一个,可以使控件在相应的方向上放大或缩小;如果拖拉位于四个角上的控制柄,则可使该控件同时在两个方向上放大或缩小。
另外,在属性列表中,有四种属性与窗体及控件的位置和大小有关,四种属性分别是Top、Left、Width和Height,窗体和控件的位置由Top和Left属性确定,而Width(表示控件的宽度)和Height(表示控件的高度)属性决定控件的大小,因此我们还可以在属性窗口通过改变控件四种属性值来改变它们的位置和大小。
6. 多个控件的对齐与调整
窗体中的多个控件常需要进行对齐和调整,如多个控件的对齐,多个控件的间距调整,统一大小,前后顺序的调整等。操作方法是:先选定多个待调整的控件,然后使用“格式”菜单;或通过“查看”菜单中的“工具栏”选择“Form Editor”打开窗体编辑工具栏,使用其中的工具作控件的调整操作。
7. 控件对象的命名
每个控件对象都有自己的名称(Name),有了名称才能在程序代码中引用该对象。建立的控件都有默认的名称,如窗体的名称form1、form2、命令按钮的默认名称command1、command2等。为了能见名见义,用户可以属性窗口中设置控件的Name属性来给对象重新命名,注意,名称必须以字母或汉字开头,由字母、汉字、数字串组成,长度<=255个字符,其中可以出现下划线(但最好不用,以免不小心与VB代码中的续行符混淆)。
名称最好有一定意义,一种比较好的做法称为“匈牙利命名法”,即用三个小写字母作为对象的Name属性的前缀。则一个控件的命名采取如下方式:
控件前缀(表示控件的类型)+控件代表的意义或作用
例如:cmdEnd用于表示一个“结束”按钮、frmFirst可为第一个窗体的名称,。 1.3.2.4 VB程序的结构
应用程序是一个指令集合,用于操纵计算机完成指定的操作。VB把用来构造一个应用程序的所有相关文件合称为一个工程(Project)文件,其扩展名为.vbp。VB中使用工程来管理不同文件。一个工程通常包括以下几类文件:
◆ 工程文件(.vbp) 一个工程只有一个工程文件,这管理该工程的所有部件。 ◆ 窗体文件(.frm) 一个窗体对应一个窗体文件,一个应用程序中至少有一个窗体,
也可有多个。该文件中包括窗体及其上控件的属性设置、窗体及变量的说明、事件过程、窗体内的通用过程、外部过程的窗体及声明等。
◆ 窗体的二进制数据文件(.frx) 若一个窗体中包括图片或图标等二进制信息,则
保存窗体文件.frm的同时,会产生一个与该窗体文件具有相同主文件名的.frx文件。
◆ 标准模块文件(.bas) 当应用程序大而复杂,需要设计多个窗体,并在多个
窗体间有共享代码时,可引入标准模块。标准模块可以包含全局或模块级变量、常数、类型、外部过程声明等,标准模块中只能存放通用过程,可供本工程内各窗体调用。一个应用程序允许有多个标准模块。默认应用程序不含标准模块文件,用户需要时可通过“工程”菜单“添加模块”命令添加。
◆ 类模块文件(.cls) 用于创建用户自定义新对象,新对象也含有方法和属性。
默认应用程序不含类模块文件。用户需要时可通过“工程”菜单“添加类模块”命令添加。
◆ 资源文件(.res) 该文件是可选的,包含着不必重新编辑代码就可以改变的位图、
字符串和其它数据。
◆ ActiveX控件的文件(.ocx) 可以添加到工具箱并在窗体中使用。
建立一个大型程序时应先设计好代码的组成结构。如图1-9所示为某工程的模块结构,该工程包含三类模块,即窗体模块、标准模块和类模块。对于简单程序,通常只有窗体模块。
图1-9 工程中的模块结构
1.3.2.5 工程的管理
1. 创建、打开和保存工程
工程文件的操作既可以用菜单中命令也可以用相应的工具栏按钮来完成。 (1) 新建工程和打开工程
选择“文件”菜单“新建工程”命令,系统会提示保存当前工程文件,然后显示出如图1-2所示的“新建工程”对话框,选择“标准.exe”确定后即可新建一个工程,工程的默认文件名为“工程1”。
【注意】单击工具栏上的第一个按钮即“添加Standard EXE工程”按钮并不能达到新建工程的目的,单击该按钮可创建工程组,即在当前工程中添加一个工程,而不是新建工程。这是初学者很容易犯的一个错误。
“文件”菜单的“打开工程”命令,可打开一个已存在的工程文件到当前工作区。该命令在工具栏上有相应的工具按钮,见表1-1。
(2) 保存工程和工程另存为
选择“文件”菜单的“保存工程”命令,是以原有的工程文件名存盘,当某工程是第一次被保存时,系统会弹出“文件另存为”对话框,提示用户输入文件名来保存此工程。保存工程文件的同时保存与该工程有关的修改过的窗体文件和标准模块文件。
“工程另存为”命令是以规定的工程文件名保存工程,通常用于对已有工程修改后的改名存盘。
2. 添加、删除和保存文件
对于包含多个窗体文件或标准模块文件的工程,对每个文件都存在着文件的添加、删除和保存操作,这样,在保存工程文件之前,应先分别使用“文件”菜单中的“保存Form”或“保存Module”等命令来保存窗体文件和标准模块文件。
窗体文件和标准模块文件的添加和删除可以通过“工程”菜单中相应命令来完成。 【注意】窗体文件和标准模块文件既可在VB工程中删除,也可在VB之外删除。如果在VB外删除一个文件,则VB不能更新相应的工程文件,这样,在打开该工程文件时,将显示文件丢失的出错信息。
1.4窗体及常用控件
由VB程序设计特点我们可以了解到,用VB来编写应用程序,控件的属性及设置非常重要,读者在学习编程的过程中,一定要注意把握这点。为了后续章节的学习方便,在本小节中将简单介绍窗体及几个常用控件的基本属性,更多的常用控件将在本书的第六章中学习。
1.4.1窗体及控件的基本属性
根据1.3.2.2节的知识我们知道,每个对象均有自己的属性,可以通过属性窗口看到所选对象的属性列表及设置值,并可以根据需要在设计阶段或编码阶段来改变属性的值,而当我们改变某个对象的属性值时,对象的行为和外观都相应地会有所变化。不同的对象有许多相同的属性,为介绍的方便,我们把它们称为“基本属性”,但读者请注意,不是所有的对象都具有下面要提到的基本属性,也不是所有的属性都可同时在设计阶段和编码运行阶段改变和设置。
1. Name(名称)属性 所有控件均有名称属性,代表所创建对象的名称,其属性值将作为控件的标识在程序中被引用。Name属性只能在设计阶段即只能通过属性窗口来设置或更改,在运行时是只读的,不能在编码运行阶段(即在代码中)修改。
Name属性值必须以字母开头,可以包含字母、数字和下划线,不能包含标点符号和空格,不能与其它公共对象重名。
2. Caption(标题)属性
为控件上显示的内容。该属性既可在设计阶段也可在编码运行阶段设置和改变。 3. Top、Left、Width和Height属性
(Top,Left)是控件或窗体左上角的坐标。对于窗体而言,Top属性表示窗体到屏幕顶部的距离,Left表示窗体到屏幕左边的距离,对其它控件,Top属性表示控件到窗体顶部的距离,Left表示控件到窗体左边框的距离。(Top,Left)是控件或窗体左上角的坐标,
Width和Height属性分别表示了控件的宽度和高度。VB提供了默认坐标系,窗体的左上角为坐标原点,水平方向向右为正方向,垂直方向向下为正方向,坐标值默认单位是twip,1twip=1/20点=1/1440英寸=1/567厘米。如图1-10所示为VB的坐标系。图示中窗体的Caption属性被设置为“窗体标题显示”,按钮的Caption属性被设置为“按钮标题显示”。
图l-10 控件的位置和大小
4. Font属性
Font属性改变控件中显示的文本外观,通过该属性能设置FontName(字体),FontSize(字体大小),及一些常用的字体显示效果如FontBold(粗体),FontItalic(斜体),FontStrikethru(加册除线),FontUnderline(加下划线)等。通过单击选定对象属性窗口中Font属性列表的图标后出现如图1-11所示Font属性对话框。在对话框中可完成所需设置。如果用户所设计的界面中所有控件具有相同的Font属性,则只需对窗体的Font属性作设置,窗体内其它控件均服从该属性,除非用户再改变某控件的Font属性值。
图1-11 Font属性对话框
5. Enabled属性