3.6 Visual Basic 应用程序的结构与工作方式
应用程序是一个指令集,用来指挥计算机完成指定的操作。应用程序结构指的是组织指令的方法,即指令存放的位置和指令的执行顺序。对于只有一行代码的程序来说,程序的组织结构并不重要。应用程序越复杂,对组织或结构的要求也越高。除了控制应用程序的执行外,对于在应用程序中查找特定的指令,结构也有着重要的作用。Visual Basic应用程序通常由3类模块组成,即窗体模块、标准模块和类模块。
3.6.1 窗体模块
Visual Basic应用程序是基于对象的,应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,对象由数据和代码组成。在屏幕上看到的窗体是由其属性规定的,这些属性定义了窗体的外观和内在特性。在Visual Basic中,一个应用程序包含一个或多个窗体模块。每个窗体模块分为两部分,一部分是作为用户界面的窗体;另一部分是与该窗体相关联的代码。
每个窗体模块都包含事件过程,即代码部分,这些代码是为响应特定事件而执行的指令。在窗体上可以有各种控件,这些控件都有一个相对应的事件过程集。除事件过程外,窗体模块中还可以含有通用过程,它可以被窗体模块中的任何事件过程调用。
3.6.2 标准模块
标准模块完全由代码组成,不含有窗体,所以这些代码不与具体的窗体或控件相关联。通常写入标准模块中的代码如下。
❑声明全局变量。在标准模块中声明的全局变量可以被工程中的任何模块引用。
❑定义全局函数过程或者全局子程序过程。
❑编写Sub Main过程。
3.6.3 类模块
类是具有多态性的用户自定义类型。封装功能将代码和数据组织在同一个类模块中,使得对象能保护和验证其中的数据。借助创建对象的类,能将数据和过程组织成一个整体。在Visual Basic中创建自已的类是通过在工程中添加类模块,然后设计类模块的相关代码实现的。
前面所述的标准模块只包含代码,而类模块既包含代码又包含数据。每个类模块定义了一个类,可以在窗体模块中定义类的对象,调用类模块中的过程。建立类模块的方式是在工程资源管理器中右击,从弹出的快捷菜单内选择“添加”|“添加类模块”菜单项即可。
3.6.4 事件驱动
事件是窗体或控件识别的行为和动作。在响应事件时,事件驱动应用程序会执行Basic代码。Visual Basic的每一个窗体或控件都有一个预定义的事件集。如果其中有一个事件发生,而且在关联的事件过程中存在代码,则Visual Basic将调用该代码。
尽管Visual Basic中的对象会自动识别预定义的事件集,但要判定它们是否响应具体事件以及如何响应具体事件则需要通过编程来实现。代码部分(即事件过程)与每个事件对应。想让控件响应事件时,则可以把代码写入这个事件的事件过程中。
对象所识别的事件类型多种多样,但多数类型为大多数控件所共有。例如,大多数对象都能识别Click事件:如果单击窗体,则执行窗体的单击事件过程中的代码;如果单击命令按钮,则执行命令按钮的Click事件过程中的代码。但是,每种情况中的实际代码几乎完全不一样。以下是事件驱动应用程序中的典型事件序列。
(1)启动应用程序,加载和显示窗体。
(2)窗体(或窗体上的控件)接收事件。事件可由用户引发(例如,鼠标操作),也可以由系统引发(例如,定时器事件),还可由代码间接引发(例如,当代码加载窗体时的Load事件)。
(3)如果在相应的事件过程中存在代码,就执行代码。
(4)然后,应用程序等待下一次事件。