图1-4 工具箱窗口
除 “通用(General)” 选项卡外,用户还可添加选项卡来定制自己的专用工具,方法是在工具箱任意处单击右键,选择快捷菜单的“添加选项卡”命令,在弹出的对话框中输入新增选项卡的名称,“确定”后即成功添加了一个自定义选项卡(如图1-4),接下来可对新增选项卡加控件,方法有二,一是直接拖动原有选项卡中已有控件至新增选项卡,二是单击选项卡激活后,再通过“工程”菜单的“部件”命令装入其它控件。
2. 窗体设计器窗口
窗体设计器窗口位于集成开发环境的中间,简称窗体(Form),是应用程序最终面向用户的窗口,用户通过与窗体上的控制部件交互可得到结果,各种图形、图像、数据等均通过窗体或窗体中的控件显示出来。每个窗体有一个唯一的名称标识,按照建立窗体时的顺序默认名称为Form1 、Form2 ??,一个应用程序可使用多个窗体,但一个应用程序至少应有一个窗体。
窗体就像一块画布,用户可根据应用程序界面的要求,从工具箱中选取所需要的控件,在窗体上画出来,这是VB应用程序界面设计的第一步。由图1-3我们可以看到窗体窗口操作区布满灰色小点,这是一些网格点,方便用户在窗体上定位和对齐控件。如果想清除网格点,或者想改变网格点之间的距离,可通过执行“工具”菜单的“选项”命令,在“通用”标签中调整。
3. 工程资源管理窗口
工程是组成一个应用程序的所有文件的集合,利用图1-5所示的工程资源管理窗口可以对当前使用的工程进行管理,该窗口中有三个按钮,下接工程资源管理器的文件列表窗口,以层次列表形式列出组成工程的所有文件。三个按钮功能分别为:
◆◆◆
“查看代码”按钮 单击可切换到代码窗口,显示和编辑代码。
“查看对象”按钮 单击可切换到窗体设计器窗口,显示和编辑对象。
“切换文件夹”按钮 单击可隐藏或显示包含在对象文件夹中的个别项目列表。
图1-5 工程资源管理器窗口
4. 代码窗口
每个窗体有自己的代码窗口,专门用于显示和编辑应用程序源代码,如图1-6。打开代码窗口有以下三种方法:
◆ 由“视图”菜单中选择“代码窗口”命令
◆ 从工程资源管理窗口中选择一个窗体或标准模块,并单击“查看代码”按钮。 ◆ 双击要查看或编辑代码的窗体或控件本身。
图1-6 代码窗口
代码窗口中各部分简介如下:
◆“对象”列表框 单击列表框下拉按钮,可显示窗体中的对象名。其中,“通用”表示与特定对象无关的通用代码,一般利用它声明模块级变量或用户编写自定义过程。
◆“过程”列表框 在“对象”列表框选择某一对象名,在过程列表框中选择事件过程名,可构成选中对象的特定事件过程模板,用户可以该模板内输入代码。其中“声明”表示声明模块级变量。
◆“代码编辑区” 用户在此输入和编辑代码。
◆“过程查看”按钮 单击该按钮代码编辑区只能显示出所选定过程代码。 ◆“全模块查看”按钮 显示模块中全部过程代码。 5. 属性窗口
在进行应用程序界面设计时,窗体和控件的属性,如标题、大小、字体、颜色等,可以通过属性窗口来设置和修改。
图1-7 属性窗口
属性窗口如图1-7所示,主要由4个部分组成: ◆对象列表框 单击其右边下拉按钮可打开所选窗体包含对象的列表。
◆属性显示排列方式 有两个选项,用户可以选择“按字母序”或“按分类序”两种方式排列显示属性。
◆属性列表框 属性列表框分为左右两列,左边是各种属性的名称,右边是该属性的默认值,用户可由左边选定某一属性,然后在右边对该属性值进行设置或修改。不同对象所列出的属性值不同。
◆属性含义说明框 当在属性列表框中选定某一属性时,在属性含义说明框中将显示所选属性的含义。初学者可利用该项功能认识和熟悉对象的属性含义。
对象的某些属性的取值是有一定限制的,如对象的可见性(Visible)只能设置True (可见)和False(不可见),而有些属性,如标题(Caption)可以设为任何文本。在实际应用中,不可能也没有必要设置每个对象的所有属性,很多属性都可取其默认值。
仅在设计阶段才能激活属性窗口,方法有: ◆ 选择“视图”菜单中“属性窗口”命令。
◆ 按F4键或单击工具栏上的“属性窗口”按钮。 ◆ 鼠标单击属性窗口的任意位置。 6. 窗体布局窗口
用于指定程序运行时的初始位置。主要为使所开发的应用程序能在不同分辨率的显示器上使用,用户只要用鼠标拖动如图1-8所示“窗体布局窗口”中的Form窗体的位置,就决定了该窗体运行时的初始位置。若一个工程中有多个窗体,在布局窗口同时可以观察多个窗体的相对布局。
图1-8 窗体布局窗口 7. 立即窗口
为调试应用程序而提供,用户或直接在该窗口利用Print方法或直接在程序中用Debug.Print显示所关心的程序中的表达式的值。
1.3 VB程序设计特点
用VB设计应用程序,首先要做的是布置好所需要的控件对象并对这些对象作必要的初始属性设置工作,这是界面设计阶段(后文简称设计阶段),接下来是根据应用程序需求编写相应事件过程代码并调试运行,我们把这一阶段称为编码运行阶段。两个阶段的工作平台可以通过“工程资源管理器”窗口中的“查看对象”和“查看代码”两个按钮来切换。本节将介绍VB程序设计可视化编程、面向对象、事件驱动等特点。
1.3.1 可视化编程环境
传统的面向过程的结构化程序设计,用户界面是通过编写代码来实现,开发者在设计过程中看不到界面的实际显示效果,只有等到编译后程序运行时才能观察到,若对界面要作修改,必须返回到程序中去修改,显然影响了软件开发效率。而在VB中,应用的是面向对象的程序设计(Object-Oriented Programming),把程序和数据封装起来成为一个对象(Object),每个对象都是可视的(Visual),依靠VB提供的可视化设计平台,开发者不必再为界面的设计而编写大量的程序代码,只需按照设计要求的屏幕布局,在屏幕上“画”出各种“部件”即对象,如窗口、命令按钮、菜单等,并设置这些图形对象的位置、大小、颜色等属性, VB将自动产生出界面设计代码,开发者需要编写的只是实现程序功能的那部分代码,这种“所见即所得”的可视化用户界面设计大大提高了程序开发效率。
1.3.2 对象和事件驱动
1.3.2.1 类和对象的概念
对象是具有特殊属性(数据)和行为方式的(方法)的实体,在现实生活中到处可以见到,如一辆汽车可看作一个对象,汽车的型号、价格、外观等特性,称为属性,汽车的启动、加速、减速等是汽车的行为。对象的概念是相对的,根据观察者的角度可将对象分解和综合,如汽车还可分解为车头、车尾,也可分解为发动机、车轮等对象,分解后的对象又都分别具有不同的属性和行为。
类是具有共同抽象的对象的集合,在面向对象的程序设计中,类是创建对象实例的模板,它包含所创建对象的共同属性描述和共同行为特征的定义。例如,各种各样的汽车可以看作一个汽车类,具体到某一辆特定的汽车则称为汽车类的一个实例,即一个对象。
VB中的类可分为两种,一种是由系统设计好,可以直接使用的类;另一类是由用户定义的类,本书中重点介绍第一种。在上一节所介绍的工具箱中的标准控件均为VB系统设计好的标准控件类,当开发者在窗体上“画”一个控件的过程即为该控件类的实例化,将控件类转换成了一个控件对象,以后简称为控件。窗体在VB中是一个特例,它既是类又是对象,当用户向一个工程添加一个新窗体时,实质上就是由窗体类创建了一个窗体对象。
除了用户大量使用的窗体和控件对象外,VB还提供了一些系统对象,如打印机(Printer)、剪贴板(Clipboard)、屏幕(Screen)等,在后面的章节中将涉及系统对象的使用。
1.3.2.2 对象的属性、方法、事件
1. 属性
属性可看作是对象的性质,对象中的数据就保存在属性中。在VB可视化编程中,每种对象都有一组特定的属性。如控件的Name(名称)属性、Caption(标题)属性,Font(字体)属性、Color(颜色)属性等决定了控件对象的外观。VB中要设置或改变对象的属性有两种方法:
◆ 在界面设计阶段可通过图1-7所示的属性窗口的属性框直接设置对象的属性。 ◆ 在编码运行阶段可通过语句来实现属性的改变,格式为:对象.属性=属性值。 两种方法视程序设计需要可选。例如,要将名称为cmdEnd的按钮的Caption属性值设为“退出”的方法:
方法一:直接在该按钮的属性框中将其默认的Caption属性值“command1”修改为“退出”。
方法二:在事件过程代码中书写语句:cmdEnd.Caption=”退出”。 2. 方法
方法是对象本身内含的特殊函数和过程,用于完成某种特定的功能。VB系统本身已将一些通用的过程和函数编写好并封装起来了,作为方法供用户直接调用。方法只能在代码中使用,调用格式为:
[对象名称].方法 [参数列表]
其中,[ ]中为可选项。若省略了对象名称,则表示当前对象,一般指窗体对象,建议初学者不要省略。
例如:
Form1.cls ‘调用cls方法,用于清除窗体Form1上显示的内容 Print “Visual Basic 6.0” ‘调用Print方法在当前窗体上显示“Visual Basic 6.0”文字
3. 事件、事件过程、事件驱动
(1)事件 事件简单说就是发生在某对象上的事情。如鼠标的单击事件(Click)、双击事件(Dblclick),键盘按下事件(KeyPress)等。每种对象能响应的事件是不同的,VB系统为每个对象预先定义好了一系列事件。
(2)事件过程 当在某对象上发生了事件后,应用程序就要处理这个事件,处理的过程称为事件过程,事件过程是指附在该对象上的程序代码,VB应用程序设计的主要工作就是为对象编写事件过程中的程序代码。事件过程的语法格式如下:
Private Sub 对象名_事件名([参数列表]) ? 处理事件过程相应代码
End Sub
格式中,对象名是指该对象的Name属性值,事件名是由VB定义好的该对象能识别的事件。
【例1.1】,单击命令按钮command1,改变当前窗体的标题栏显示文字为“事件过程示例”,对应事件过程代码如下:
Private Sub Command1_Click( )
Form1.Caption = \事件过程示例\
End Sub
(3)事件驱动 在VB中程序执行后等待某个事件的发生,然后去执行处理此事件的事件过程,待事件过程执行完毕后,系统又处于等待某事件发生的状态,这就是事件驱动的程序设计方式。事件发生的顺序决定了代码执行顺序,若事件不被驱动,则该事件相应的事