程序设计
Visual Basic 6.0
课程内容
第 1章 Visual Basic 6.0 简介
Visual Basic 的特点
可视化, Visual的英文含义既是可视化,在可视化环境下创
作前端界面也就如同摆放积木。
面向对象, 面向对象编程是建立在类的基础上的,其通过类
的封装而使源程序更加便于维护。
部件编程, 在 Visual Basic 中进行部件编程是建立在微软的
部件对象模型( COM)基础上的。
事件驱动, 在事件驱动模式下,程序的执行是依靠系统能够
被识别的触发事件启动的。
运行环境
操作系统,NT Server 4.0,NT Workstation 4.0,Windows
95,或更高版本。
CPU,486DX/66 MHz 或更高的处理器。
内存,Windows 95/ 98下要求 24MB以上的内存,Windows
NT下要求 32MB以上。
磁盘空间,对于标准版或专业版,典型安装 48MB,完全安
装 80MB。
其他设备,CD-ROM 驱动器,鼠标或其他光标控制设备。
启动及退出
单击 Windows― 开始”按钮,指向“程序”,再指向
Microsoft Visual Basic 6.0图标,就可以启动 Visual Basic 6.0。
并进入到 Visual Basic 6.0 集成 开发环境 。
当需要退出 Visual Basic时,可以关闭 Visual Basic集成环
境窗口,或通过菜单命令“文件 \退出” 退出。
Visual Basic 6.0 集成 开发环境
第 2章 集成开发环境
Visual Basic 6.0 菜单
菜单是在集成开发环境下发布命令的最基本手段。 Visual
Basic 顶级菜单有,文件, 编辑, 视图, 工程, 格式, 运行,
查询, 图表, 工具, 外接程序, 窗口, 帮助,但菜单命令是
通过子菜单中的子菜单项发出的。
文件菜单
文件菜单主要用于建立、打开、
添加、移去、保存工程和文件,
包括:新建工程,打开工程,
添加工程,移除工程,保存工
程,工程另存为,保存文件,
文件另存为,打印,打印设置,
生成工程 等子菜单项。
编辑菜单
在对工程进行修改时,编辑菜
单用于各种编辑操作 。包括:撤
消、重复、剪切、复制、粘贴、
粘贴链接、删除、全选、查找、
缩进、凸出、插入文件、属性/
方法列表、快速信息、参数信息
书签等子菜单项。
视图菜单
视图菜单用于显示各种窗口及
和窗口有关的操作 。包括:代码
窗口、对象窗口、定义、最后位
置、对象浏览器、立即窗口、本
地窗口、监视窗口、调用堆栈、
工程资源管理器、属性窗口、窗
体布局窗口、属性页、表、缩放、
显示窗格、工具箱、调色板、工
具栏等子菜单项。
工程菜单
工程菜单用于为当前工程创建
模块、作对象引用或提供各种设
计器 。包括:添加窗体、添加
MDI窗体、添加模块、添加用户
控件、添加属性页、添加用户文
档、添加设计器、添加文件、移
除、引用、部件、工程属性等子
菜单项。
格式菜单
格式菜单用于界面设计,能使
界面中的控件规范排列 。包括:
对齐、统一尺寸、按网格调整大
小、水平间距、垂直间距、在窗
体中居中对开、顺序、锁定控件
等子菜单项。
调试菜单
调试菜单用于调试、监视程序 。
包括:逐语句、逐过程、跳出、
运行到光标处、添加监视、编辑
监视、快速监视、切换断点、清
除所有断点、设置下一条语句、
显示下一语句等子菜单项。
运行菜单
查询菜单中各条菜单命令用于
数据库表的查询及相关操作 。所
提供的各种查询设计工具,使用
户能够通过可视化工具创建 SQL
语句,实现对数据库的查询、修
改。
查询菜单
运行菜单用于执行程序 。包括:
启动、全编译执行、中断、结束、
重新启动等子菜单项。
图表菜单
图表菜单中各条菜单命令用于
数据库中表、视图的各种相关操
作。所提供的各种图表设计器,
使用户能够用可视化的手段操作
表及其相互关系,和创建和修改
应程序所包含的数据库对象。
工具菜单
工具菜单包括:添加过程、过
程属性、菜单编辑器、选项、发
布等子菜单项。
外接程序菜单
外接程序菜单工程菜单用于为
当前工程创建含:可视化数据管
理器、外接程序管理器等子菜单
项。
窗口菜单
窗口菜单用于调整已打开窗口
的排列方式。包括:拆分、水平
平辅、垂直平铺、层叠、排列图
标等子菜单项。
帮助菜单
帮助菜单用于给用户提供各种
方式的帮助。包括:内容、索引、
搜索、技术支持等子菜单项。
Visual Basic 6.0 工具栏
工具栏的作用是可以通过其上面的图标按钮执行菜单命令,
由此加快操作速度。
Visual Basic能提供“编辑”、“标准”、“窗体编辑器”、
“调试”等几个工具栏,用户也可以按自己的需要“自定义”
工具栏,可以通过“视图 \工具栏”菜单项下的子菜单项选
取它们 。
Visual Basic各种工具栏中最常用的是“标准工具栏”
Visual Basic 6.0 工具箱
工具箱是 Visual Basic用于为开发提供控件的面板,通过它
可以往设计中的窗体设置各种控件。
除了 Visual Basic 内置控件之外,用户还可以通过菜单
“工程 \部件”打开“部件”对话框,从中能添加控件、设
计器或可插入对象到工具箱中,也可以引用已加载的控件工
程。
第 3章 数据类型及操作
常量
在程序中设置的常量, 既是用标识符表示永远不变的数值
或字符串 。 通过采用有意义的标识符表示常量值, 由此可以
提高源代码的可读性和可维护性 。
值得注意的是:常量不能象对变量那样在程序运行过程中
给常量标识符赋以新值 。
常量有两种来源:内部的或系统定义的,其由 Visual Basic
系统或引用的对象提供。 用户自定义 的,其需要用 Const 语
句来声明。
用户自定义常量( 1)
用户自定义常量在使用前需要声明, 由此使该 标识 符
能够被程序识别 。 其语法是,
[Public/ Private] Const 常量名 [As 类型 ] = 常量表达式
例如,
Const conPi = 3.14159265358979
Const conMaxPlanets As Integer = 9
一旦已定义常量,就可将其放置在代码中 使用。
用户自定义常量 ( 2)
一旦已定义常量, 就可将其放置在代码中 使用 。
例如,
Const conMaxPlanets As Integer = 9
Const numPeople As Integer =19
Static SolarSystem (1 To conMaxPlanets)
If numPeople > conWorldPop Then Exit Sub
变量
在 Visual Basic 中执行应用程序期间, 用变量临时存储数
据 。 变量有名字 ( 变量标识符 ) 和数据类型 ( 确定变量能够
存储的数据的种类 ) 。
可以把变量看作内存中存放未知值的所在处 。
声明变量
声明变量就是事先将变量通知程序, 由此使变量的使
用合法 。
语法,Dim/Private/Public/ Static 变量名 [As 类型 ]
例如,
Dim I As Integer
Private YourName As String,BillsPaid As Currency
Public Test,Amount,J As Integer
变量范围
变量的范围确定了能够知晓该变量存在的那部分代码 。
一个变量在划定范围时被看作是 过程级变量, 模块级变
量, 或是 公用变量 。 这取决于声明该变量时采用的方式 。
过程级变量
过程级变量只有在声明它们的过程中才能被识别, 也称
它们为局部变量 。 局部变量只能用 Dim 或 Static 关键字
来声明它们 。 例如,
Dim intTemp As Integer
Static intPermanent As Integer
用 Dim 声明的变量只在过程执行期间才存在 。
而用 Static 声明的局部变量, 则在整个应用程序运行期
一直存在, 称做:静态变量 。
模块级变量
模块级变量对该模块 ( 包括:标准模块, 窗体模块, 类
模块 ) 的所有过程都可用, 但对其他模块的代码不可用 。
可在模块顶部的声明段用 Private或 Dim关键字声明模块
级变量 。 例如,
Private intTemp As Integer
公用变量
为了使模块级的变量在其他模块中也有效, 需要用
Public 关键字声明 。 经过 Public 关键字声明的变量是公用
变量, 其值可用于应用程序的所有过程 。 只能在模块的声
明段中用 Public 关键字声明公用变量, 例如,
Public intTemp As Integer
数据类型
所有变量都具有数据类型, 以决定能够存储哪种数据 。 变
量的数据类型决定了如何将代表这些值的位存储到计算机的
内存中 。
除变量外, 数据类型也用于其他场合 。 如在给对象属性赋
值时, 这个值就有数据类型;函数的参数也有数据类型 。 事
实上, 在 Visual Basic 中, 凡是涉及数据就与数据类型有关,
包括:变量, 常量, 数组, 以及函数, 过程中的参数 。
数值型数据
Visual Basic 支持几种数值数据类型 — Integer( 整型 ),
Long( 长整型 ), Single( 单精度浮点型 ), Double
( 双精度浮点型 ), Currency( 货币型 ), 另外, Byte
( 字 节型 ) 也可用于数值计算 。
所有数值变量都可相互赋值 。 在将浮点数赋予整数之
前, Visual Basic将浮点数的小数部分四舍五入到整数 。
String 数据类型
String型变量用于存储字符串, 如下列语句,
Dim S As String
S = "Database"
在缺省情况下, String 型变量是一个可变长度的字符
串变量, 随着对其赋予新数据, 它的长度可增可减 。 但
也可以声明具有固定长度 String 型变量, 语法是,
Dim/Private/Public/ Static variablename String * size
Boolean 数据类型
若变量的值只是, true/false‖,,yes/no‖,,on/off‖信
息, 则可将它声明为 Boolean 类型 。 Boolean 的缺省值为
False。
Date 数据类型
用于存储 Date 和 Time 值, Visual Basic 接受许多种文
字的 Date 和 Time 格式 。 例如,
Dim SomeDate As Date
SomeDate = #1980-03-16#
SomeDate = #3-6-93 13:20#
SomeDate = #March 27, 1993 1:20am#
Object 数据类型
Object 变量采用 32 位 ( 4 个字节 ) 地址来存储对象,
该地址可引用应用程序中或某些其他应用程序中的对象 。
可以随后 ( 用 Set 语句 ) 指定一个被声明为 Object 的变
量去引用应用程序所识别的任何实际对象, 如,
Dim objDb As Object
Set objDb = OpenDatabase ("c:\Vb5\Biblio.mdb")
Variant 数据类型
Variant 型是声明变量时的缺省类型, 能够存储所有类
型的数据 。 如果把数据赋予 Variant 变量, 则不必在这些
数据的类型间进行转换; Visual Basic 会自动完成任何必
要的转换 。 例如,
Dim SomeValue
SomeValue = "17"
SomeValue = SomeValue - 15
SomeValue = "U" & SomeValue
自定义数据类型
在模块的声明部分可以使用 Type语句建立自定义数据
类型 。
语法格式,
[Private|Public] Type自定义类型名
元素 As 类型

End Type
数组
数组使用相同名字引用一系列变量, 并用数字 ( 索引 ) 来
识别它们 。
一个数组中的所有元素具有相同的数据类型 。
在 Visual Basic 中有两种类型的数组,固定大小的数组,
它总是保持同样的大小;以及在运行时大小可以改变的 动态
数组 。
固定大小的数组
语法,
Dim/Private/Public/ Static数组名 ( [下界 To ] 上界 )
[As 数据类型 ]
声明数组时, 在数组名之后跟一个用括号括起来确定
上界, 下界 。 上界, 下界取值在 Long 数据类型的范围的
范围内 。 缺省的下界为 0。
例如,
Dim Sums (100 To 120) As String
动态数组( 1)
创建动态数组的步骤,
第一步是声明动态数组, 其和声明固定大小的数组类
似, 但给数组附以一个空维数表, 例如,
Dim DynArray ()
第二步是用 ReDim 语句在程序执行过程中给数组指定
维数和分配实际的元素个数, 例如,
ReDim DynArray (4 to 12)
动态数组( 2)
值得注意的是,ReDim 语句与 Dim 语句, Static 语句
不同, ReDim 语句是一个可执行语句, 通过在应用程序
中执行 ReDim 语句, 给维数和元素个数待定的数组指定
维数和元素个数 。
在程序中还可以使用变量设置动态数组的边界 。
例如,
ReDim DynArray (X,Y)
运算符和表达式
程序中对数据的基本加工, 是依靠运算符实现的 。 在
Visual Basic中运算符的类型有,赋值运算符, 算术运算符,
比较运算符, 连接运算符, 逻辑运算符 。 通过常量, 变量,
运算符, 函数等的组合, 由此构成表达式 。
赋值运算符
Visual Basic中的赋值运算符, =‖用来给变量, 数组或
对象的属性赋值, 即把运算符右边的内容 ( 包括常量,
变量, 函数返回值或对象的属性 ) 赋给运算符左边的变
量或属性 。
语法格式,Variable = 表达式
其中 variable可以是变量, 数组的元素, 运行时可写的对
象的属性 。 表达式可以是常数, 常量, 变量或函数调用,
但必须有确定的值 。
算术运算符
用来进行算术运算, 有,+( 加 ), -( 减 ), *( 乘 ),
/( 除 ), \( 整除 ), Mod ( 求模 ), ^( 乘方 ) 等运算
符 。
比较运算符
比较运算符包括,<( 小于 ), <=( 小于或等于 ), >
( 大于 ), >=( 大于或等于 ), <>( 不等于 ) 和 =( 等
于 ), 用来反映两个数值或字符串表达式之间的关系 。
关系成立, 返回 True( 真 ) ;关系不成立, 返回 False
( 假 ) ;两个表达式中若有 Null,则返回 Null。
连接运算符
&, + 运算符都能用于进行两个字符串的连接, 但 &
运算符强制两个表达式按字符串连接, 尽管被连接的表
达式不是字符串也是如此 。 而 + 运算符则较复杂, 当两
个表达式都是字符串时按字符串连接, 否则视具体情况
会有不同结果 。 因此, 在进行字符串连接时一般使用 &
运算符 。
逻辑运算符
逻辑运算符包括,Not( 非 ), And( 与 ), Or( 或 ),
Xor( 异或 ), Equ( 逻辑等于 ) 和 Imp( 逻辑蕴涵 ),
用于表达两个逻辑表达式之间的关系 。 在进行逻辑运算
时, 只要参入运算的表达式中有一个为 Null,则将返回
Null。
运算符优先顺序
在表达式中, 当运算符不止一种时, 要先处理算术运
算符, 接着处理比较运算符, 然后再处理逻辑运算符 。
算术运算符优先级由高至低是,指数运算 (^),负数 (–
),乘法和除法 (*,/),整数除法 (\),求模运算 (Mod)、
加法和减法 (+,–),字符串连接 (&)。
逻辑运算符优先级由高至低是, Not,And,Or,Xor、
Eqv,Imp 。
所有比较运算符的优先顺序都相同 。
第 4章 程序结构
程序流程控制
程序的基本运行方式是自顶向下地顺序执行各条语句, 被
称做顺序结构 。 对于简单的问题, 依靠顺序结构就可以完成
任务;但对于稍微复杂一点的问题, 单纯依靠顺序结构也许
就不够了, 而必须在程序中加入更多的控制 。 程序流程的控
制是通过有效的控制结构来实现的, 包括,分支结构, 循环
结构 。
分支结构
分支结构的作用是使程序依照条件而走不同的支路 。
Visual Basic 支持的分支结构有,
If...Then
If...Then...Else
Select Case
程序中, 往往根据需要选择合适的分支结构 。
If...Then 语句
用 If...Then 结构可以有条件地执行其结构内的一条或
多条语句 。
语法格式,
If 条件表达式 Then
多条语句
End If
可以使用 If...Then...Else语句建立多个分支流程, 并根
据条件选择其中一个分支 。 语法结构,
If 条件 1 Then
[语句块 1]
[ElseIf 条件 2 Then
[语句块 2]],.,
Else
[语句块 n]]
End If
If...Then...Else 语句
Select Case 语句
Select Case 是 用 于 实 现 多 重 选 择, 其 作 用 与
If...Then...Else 语句类似 。 语法结构是,
Select Case 测试条件
[Case 表达式 1
[语句块 1]]
[Case表达式 2
[语句块 2]]
[Case Else
[语句块 n]]
End Select
循环结构
循环的作用是允许某个程序段被重复执行 。 Visual
Basic 支持的循环结构有,
Do...Loop
For...Next
For Each...Next
程序中, 往往根据需要选择合适的循环结构 。
Do...Loop 循环( 1)
Do...Loop 语句是通过计算条件值以决定是否继续执行,
而产生循环效果 。 Do...Loop 语句有几种演变形式 。
形式一,
Do While 条件表达式
语句块
Loop
形式二,
Do Until 条件表达式
语句块
Loop
Do...Loop 循环( 2)
形式三,
Do
语句块
Loop While 条件表达式
形式四,
Do
语句块
Loop Until 条件表达式
For...Next 循环
在知道要执行多少次时, 则可以使用 For...Next 循环 。 与
Do 循环不同, For 循环使用一个叫做计数器的变量, 每重
复一次循环之后, 计数器变量的值就会增加或者减少 。 For
循环的语法如下,
For 计数器 = 初始值 To 终止值 [Step 增量 ]
语句块
Next [计数器 ]
其中, 参数:计数器, 初始值, 终止值和增量都必须是
数值型的变量 。
For Each...Next循环
For Each...Next 循环与 For...Next 循环类似, 但它是以对
象集合中的每一个元素作为重复依据的, 而不是按次数重
复 。 如果不知道一个集合有多少元素, For Each...Next 循
环非常有用 。
语法格式,
For Each 元素 In 集合
语句块
Next 元素
过程和函数
过程是构成程序逻辑部件的基本单位, 将程序分割成较小
的逻辑部件可以简化程序设计任务, 结构化设计就是建立在
这个思路之上 。
在 Visual Basic 中使用的过程有,
Sub 过程 ——不返回值;又被称做子过程 。
Function 过程 ——返回值;又被称做函数 。
子过程
在 Visual Basic中子过程包括 通用过程 和 事件过程, 它
们的定义语法类似, 差别是调用方式一般不同 。
通用过程往往是由程序中的语句调用 。
事件过程往往是由用户事件触发 。
通用过程
通用过程是由程序中的语句调用的过程 。 它一般由用
户根据需要自主建立, 其作用是可以把一些公共的功能
代码放在一个过程中, 由此提高代码利用率, 并使其更
便于维护 。 可以将子过程放入标准模块, 类模块和窗体
模块中 。
定义通用过程的语法是,
[Private|Public][Static] Sub 过程名 (形式参数列表 )
语句块
End Sub
过程参数
过程的参数类似于变量声明, 它声明了从调用过程传递
进来的值的个数和数据类型 。 例如,
Private Sub Abut(X As String,Y As Integer,Z)
语句块
End Sub
设置参数类型是为了限定传递信息, 在没有设置过程参
数类型时, 其具有 Variant 数据类型 。
调用过程
调用过程的语法,
Call 过程名 ( 实际参数列表 )
或,
过程名 实际参数列表
注意,实际参数列表, 是往被定义过程的形式参数传递
的数据;因此, 其数据类型需要和形式参数保持一致 。
实际参数可以是常量, 变量, 数组, 或复杂表达式, 但
无论是什么都必须有确定的值 。
事件过程
Visual Basic 中的某个控件对象的一个事件的发生时, 便自动调
用该控件的该事件过程 。
一个窗体上的控件的事件过程名, 由控件的实际名字, 下划线 (_)
和事件名组合而成 。
例如, 一个名为 cmdPlay 的命令按钮被单击时所调用的事件过
程是,cmdPlay_Click。
窗体也属于控件, 但其事件过程命名规则却和一般控件有所不同 。
窗体事件名是:词汇,Form‖,下划线和事件名的组合 。 例如,
窗体单击时所调用的事件过程是,Form_Click 。
通用过程和事件过程的关系
函数过程
在 Visual Basic 中, 通过 Function 语句创建的函数过程和
通过 Sub 语句创建的子过程类似 。 与子过程不同的是:
Function 过程可返回一个值到调用的过程 。
函数过程的语法是,
Function 函数名 (形式参数列表 ) [As 类型 ]
语句块
End Function
函数过程需要返回的值由 As 子句设置 。
调用函数过程
调用函数时可以有两种方式 。
方法一:把函数看作一个数, 可以放在赋值号右端 。 其
格式是,
例如,Tx1=MyFunc(5)
方法二:作为参数出现在调用过程中或函数中 。
例如,Tx2=MyFunc(MyFunc(5))
函数过程中返回值
在函数过程内的语句块内, 可以通过以下语句将值返回 。
函数名 = 表达式
例 如,
Function Hypotenuse (A As Integer,B As Integer) As String
Hypotenuse = Sqr (A ^ 2 + B ^ 2)
End Function
常用内置函数
除了建立函数过程外, Visual Basic还提供了丰富的内置
函数可用于程序设计, 包括,数学函数, 字符串函数, 判
断函数, 转换函数 等方面的函数 。
数学函数 ( 1)
数学函数主要用来完成数学运算, 常用的有,
1,Sin(x)——返回 X的正弦值, X的单位为弧度 。
2,Cos(x)——返回 X的余弦值, X的单位为弧度 。
3,Tan(x)——返回 X的正切值, X的单位为弧度 。
4,Atan(x)——返回 X的反正切值, 返回值单位为弧度 。
5,Log(x)——返回 X的自然对数 。
6,Exp(x)——返回以 e为底的 X的指数值 。
数学函数 ( 2)
7,Sqrt(x)——返回参数 X的平方根值 。
8,Abs(x)——返回 X的绝对值 。
9,Hex(x)——以字符串形式返回 X的十六进制值 。
10,Oct(x)——以字符串形式返回 X的八进制值 。
11,Rnd(x)——产生一个介于 0—1之间的单精度随机数 。
12,Int(x)——去掉小数部分, 返回整数 。
13,Fix(x)——去掉小数部分, 返回整数 。
字符串函数 ( 1)
常用的字符串函数有,
1,InStr( [起始位置 ],字符串 1,字符串 2[,比较类型 ]) ——
字符串 2在字符串 1中第一次出现的位置 。
2,InStrRev(字符串 1,字符串 2[起始位置 [,比较类型 ]]—— 与
InStr()函数相似, 只是从字符串 1的后面开始向前查找 。
3,LTrim(字符串 ) ——去掉字符串左边的空白部分 。
4,Rtrim(字符串 ) ——去掉字符串右边的空白部分 。
5,Trim(字符串 ) ——去掉字符串的左右空格 。
6,Left(字符串, 个数 ) ——取出字符串左边指定个数的字符 。
字符串函数 ( 2)
7,Right(字符串, 个数 ) ——取出字符串右边指定个数的字符 。
8,Mid(字符串, 起始位置 [,个数 ]) ——取字符串由起始位置开始
的指定个数的字符 。
9,Len(字符串或字符变量 ) ——计算字符长度 。
10,Ucase(字符串 ) ——将字符串的小写字母转换为大写字母 。
11,Lcase(字符串 ) ——将字符串的大写字母转换为小写字母 。
12,Space(个数 ) ——返回指定个数的空字符串 。
13,String(个数, 字符 )——返回包含重复字符的字符串 。
判断函数
1,IsArray(变量名 )——判断变量是否为数组 。
2,IsDate(表达式 )——判断表达式是否为日期 。
3,IsEmpty(变量 )——判断变量是否已被初始化 。
4,IsNumeric(表达式 )——判断表达式是否为数字型 。
5,Iff(表达式, 真部分, 假部分 )——计算真假两部分的值,
再计算表达式的值 。 若表达式为 True,返回真部分的值;
否则, 返回假部分的值 。
转换函数
转换函数用来实现不同类型数据之间的转换 。
1,Str(数值表达式 )——把数值转换为字符串 。
2,Val( 字符串 ) ——把字符串转换为数字数值, 忽略字符
串中的非数字字符 。
编程方法
Visual Basic 具有 结构化 和 面向对象 两种编程特征 。
结构化编程
结构化编程是程序设计走向成熟的一个标志 。 非结构化的高级语
言程序是把问题作为一个单一过程来处理的 。 但是, 随着问题越来
越复杂, 程序规模逐步加大, 以至求解问题的单一过程程序复杂度
超出人所能够驾束的范围 。 结构化的基本思路是将问题进行有效分
解, 使大问题转化为小问题, 而使问题简化, 便于解决 。
模块是结构化设计中的一个基本概念 。 所谓模块既是具有一定的
功能特性程序段落 。 而模块又表现出多层次特性 。
在 Visual Basic中, 标准程序文件, 窗体文件是上层模块, 而其内
的过程, 函数则是具有更细节功能特性的下层模块 。 因此, 以完成
某项功能为目标创建程序文件, 窗体文件, 并在其内建立过程, 函
数, 也就成为了在 Visual Basic环境下, 按照结构化进行程序设计的
基本方法 。
对象编程
面向对象程序设计是在二十世纪八十年代逐步涌现出来的新的设
计思路 。 Visual Basic具有面向对象的部分特点, 它所缺少的是类的
继承特性 。
人对事物的认识是通过抽象实现的;在面向对象中, 这个抽象被
表现为, 类, 。 而对象则是, 类的实例,, 是对类的具体化的结果 。
由类的具体化可以得到对象, 既意味着:对象可以通过类来定义 。
在 Visual Basic 中, 控件是最常用的对象 。 通过把, 工具箱, 上图
标所代表的控件类拖入用户设计窗体, 也就获得了一个控件对象 。
实质上, 对象既是代码和数据的组合, 它可以是应用程序的一部分,
也可以是整个应用程序 。 窗体, 窗体上的命令按钮, 列表框, 数据
库, 数据库中的表, 字段, 记录集, 图表;它们都是对象 。
第 5章 可视化设计基本构件
窗体
窗 体 是 Visual
Basic 应用程序的
基本构造模块, 是
运行应用程序时,
用户进行交互操作
的窗口或对话框 。
其固有成分是:图
标, 标题栏, 控制
菜单, 控制按钮和
工作区 ( 容器 ) 。
窗体属性( 1)
窗体的个性是通过其属性体现的, 其可以在设计时通过, 属性,
窗口设置, 也可以在运行时由代码来实现 。 窗体的常用属性是,
1,Name ——窗体的名称 。
2,Appearance ——3D 效果 。
3,BorderStyle——设置窗体边框样式 。
4,Caption ——窗体标题 。
5,ControlBox ——设置窗体, 控制菜单, 。
6,Enabled ——对用户事件是否能作出反应 。
窗体属性( 2)
7,Height( 高 ), Width( 宽 ) ——窗体大小 。
8,Left( 左 ), Top( 顶 ) ——窗体位置 。
9,HelpContextID ——帮助文件的上下文关联编号 。
10,Icon ——设置窗体图标 。
11,MDIChild ——设置窗体是否被作为 MDI 子窗体 。
12,Moveable ——设置是否能移动一个窗体 。
13,StartupPosition ——设置窗体启动位置 。
14,Visible ——设置窗体是被显示还是被隐藏 。
窗体事件
事件的作用在于能够对用户的行为作出响应 。 窗体的常
用事件有,
1,Load事件 ——发生在窗体被装载时 。
2,Activate 事件 ——当一个窗体变成活动窗体时 。
3,Deactivate 事件 ——当改变当前窗体时 。
4,Unload事件 ——当卸载窗体时 。
5,Resize 事件 —— 当调整窗体的大小时 。
窗体的方法
窗体的方法也就是窗体所具有的行动方式 。 窗体上常用
的方法有,
1,Show方法 —— 用以显示窗体 。
2,Hide方法 ——用于隐藏窗体, 但不能使其卸载 。
3,Move方法 ——用以移动窗体到一定的坐标位置 。
4,Refresh方法 ——强制全部重绘窗体及上面的控件 。
控件
控件是建立 Visual Basic应用程序的基本元素 。 应该讲, 可
视化设计就是通过控件实现的 。
能够用于 Visual Basic的控件数量众多, 一般将其分为两个
方面,内部固有控件, ActiveX 控件 。 用户可以通过, 工具
箱, 获取各种控件 。
内部控件
内部控件是包含在 Visual Basic系统内, 可以直接使用的控件;
因此具有相对较好的运行性能 。
常用的内部控件有,命令按钮, 文本框, 标签, 框架, 列表
框, 组合框, 复选框, 选项按钮, 图片框, 定时器, 数据控件
等 。
CommandButton(命令按钮)
当用户需要交互式地控制应用程序的时候, 最简便的方法就是
给用户提供一个, 命令按钮, 。
命令按钮的作用是:在用户单击它时, 将会激发它的 Click 事
件 。 因此, 将代码写入 命令按钮的 Click 事件过程, 通过用户单
击就可以执行相关操作 。
命令按钮的常用属性有,
Cancel属性 用于设置按钮为取消按钮 。
Caption属性 用于设置在命令按钮上显示的文本 。
Style属性 设置命令按钮的外观 。
TextBox (文本框)
TextBox( 文本框 ) 控件一般是用来接收或显示输入输出信息,
可用于编辑文本 。
经常使用的文本框属性有,
Text属性 用于设置显示的文本内容 。
MaxLength属性 用于设置文本框中输入字符串的长度限制 。
MultiLine属性 用于设置文本框是否以多行方式显示文本 。
PasswordChar属性 用于设置是否显示用户键入的字符 。
ScrollBars属性 用于设置文本框是否有垂直或水平滚动条 。
Label(标签)
Label ( 标签 ) 控件是专门用来显示文本的, 因此用户不能对
标签内的文本进行编辑 。
一般被用作标题名 。 通常用标签来标注本身不具有 Caption 属
性的控件 。 例如, 可用 Label 控件为文本框, 列表框, 组合框等
控件添加描述性的标签 。
标签常用的属性有,
Caption 属性 缺省属性, 设置标签中显示的文本内容 。
AutoSize属性 设置控件是否能自动调整以显示所有的内容 。
WordWrap属性 该属性设置控件是否扩大以显示标题文字 。
Frame(框架)
Frame( 框架 ) 控件是一个容器 。 框架的作用是能够把其他的
控件组织在一起形成控件组 。 这样, 当框架移动, 隐藏时, 其内
的控件组也相应移动, 隐藏 。
框架的常用属性有,
Caption属性 设置框架标题, 使用户了解框架的用途 。
Enabled属性 设置框架是否有效 。
Visible属性 设置框架是否可见 。
ListBox(列表框)( 1)
ListBox( 列表框 ) 控件用于显示项目列表 。 用户可以从列表框
中的一系列选项中选择一个或多个选项 。
List属性 设置列表框中包含的项 。
Columns属性 设置是水平滚动还是垂直滚动 。
MultiSelect属性 设置是否能够做多个选择 。
ListIndex属性 当前所选择元素的下标 。
ListCount属性 列表中全部元素的个数 。
Sorted 属性 设置按字母顺序排列项目 。
ListBox(列表框)( 2)
列表框经常用到的操作有,
1,添加项目:列表框,AddItem item[,index]
例如,List1.AddItem ―王平,
2,删除项目:列表框,RemoveItem index
例如,List1,RemoveItem 0
3,获得列表项目内容,列表框,List(index)
例如,Text1.Text = List1.List(2)
4,用 ListIndex 属性判断项目位置 。
5,用 ListCount 属性返回项目数 。
ComboBox(组合框)
ComboBox( 组合框 ) 控
件将文本框和列表框的功能
结合在一起 。 有了这个控件,
用户可通过在组合框中输入
文本来选定项目, 也可从列
表中选定项目 。
在使用方式上, 组合框具
有和列表框相似的特征 。
组合框的特点是可由 Style
属性设置三种组合样式 。
CheckBox(复选框)
CheckBox( 复选框 ) 控件通常用于提供 Yes/No 或 True/False
的逻辑选择 。
复选框通过 Value 属性指示其所处的状态 。
无论何时, 当用户单击复选框时都将触发其 Click 事件 。
OptionButton(选项按钮)
选项按钮被用来做从多
个可选项中选择一项的
操作 。
选项按钮和复选框控
件看起来相似 。 因此,
可以把复选框中的操作
方法用到选项按钮上来 。
它们之间的区别是:选
项按钮一般用于单项选
择, 而复选框则可以用
于多项选择 。
PictureBox(图片框)
图片框是用来显示图形的,
但同时它又可以作为其它控
件的容器 。 在做容器使用时,
图片框和 Frame 控件类似 。
图片框经常用到的属性是,
Picture属性 用于设置要加
载的图片 。
AutoSize属性 设置图片框是
否按图片大小自动调整 。
Timer(定时器)
定时器是一个响应时间的控件 。 它们独立于用户, 编程后
可用来在一定的时间间隔中周期性地执行某项操作 。
定时器有两个关键属性,
Enabled属性 当该属性为 True时, 定时器处于工作状态 。
而当 Enabled 被设置为 False 时, 它就会暂停操作而处于待
命状态 。 因此, 定时器的 Enabled 属性并不同于其它对象
的 Enabled 属性 。
Interval属性 定时器周期性事件之间的时间间隔 ( 毫秒
数 ) 。
Data(数据)控件
Data控件用于在程序中进行数据库连接, 并可以把数据库
中的信息通过窗体上的数据识别控件显示, 编辑和更新 。
Data控件是依靠属性来获取对数据的连接的, 在进行连接
时其关键属性有,
Connect属性 设置有待连接的数据库类型 。
DatabaseName属性 设置连接的数据库文件或目录名称 。
RecordSource属性 设置需要访问的数据库表的名称 。
ActiveX 控件
ActiveX 控件是外部控件, 因此其存在形式不同于和 Visual
Basic融合在一起的内部控件 。 它们是以扩展名为,ocx 的文件形
式存在于 Visual Basic系统之外, 只在需要时才将其添加到工具
箱中 。
ActiveX 控件是对 Visual Basic 内部控件集合的扩充 。 例如:
ADO Data控件, 它是 Data控件的功能扩充, 可使 Visual Basic具
有更强的数据访问能力 。 应该讲, Visual Basic的诸多强大功能
正是依靠 ActiveX 控件获得的 。
经常使用的 ActiveX 控件有,ADO Data, 数据组合, 数据列
表, DataGrid, 公共对话框, RichTextBox 等 。
ADO Data
在使用 ADO Data 控件之前需要在, 部件, 对话框中, 选择
,Microsoft ADO Data Control‖选项, 将其引入到工具箱 。
如同 Data 控件, ADO Data 控件也是通过属性实现了对数据源
的连接 。 其用于连接的关键属性是,
ConnectionString属性 设置数据源连接方式 。
RecordSource属性 设置记录源类型, 组成 。
DataCombo, Data List 控件
为了使用 DataCombo 和 Data List 控件, 需要在, 部件, 对话
框中, 选择, Microsoft DataList Controls‖选项 。
DataCombo 和 DataList 控件与标准列表框, 组合框控件极为
相似, 其不同在于 DataCombo, DataList 控件具有更强的数据
绑定能力 。
DataCombo, DataList 控件能实现两方面的数据绑定 。 其一
方面, 可以通过 DataSource,DataField属性绑定到其将产生影
响的目标数据的某个字段;另一方面, 还可以通过 RowSource、
ListField属性绑定到其列表所需数据的某个字段 。
DataGrid
要用 DataGrid 控件, 需要在, 部件, 对话框中, 选择
,Microsoft DataGrid Control‖到工具箱 。
DataGrid 控件是一种类似于电子数据表的绑定控件, 可
以显示一系列行和列来表示记录集合的记录和字段 。
DataGrid 控件数据访问功能极强, 但使用却非常简单 。
在设计时只需要设置了它的 DataSource 属性, 则其就会用
数据源的记录集来自动填充该表格, 和自动设置该控件的
列标头 。
CommonDialog(公共对话框)
要使用公共对话框, 需要在, 部件, 对话框中, 选择, Microsoft
CommonDialog Control‖到工具箱 。
公共对话框控件提供一组标准的操作对话框, 进行诸如打开和保存
文件, 设置打印选项, 以及选择颜色和字体等操作 。
方法
显示的对话
ShowOpen
打开
ShowSave
另存为
ShowColor
颜色
ShowFont
字体
ShowPrinter
打印
ShowHelp
调用 Windows― 帮助,
RichTextBox
要使用 RichTextBox 控件, 需要在, 部件, 对话框中, 选
择, Microsoft RichTextBox Control‖到工具箱中 。
RichTextBox 控件和标准文本框类似, 标准 TextBox 控件
用到的所有属性, 事件和方法, RichTextBox 控件几乎都能
支持, 例如 MaxLength,MultiLine, ScrollBars,
SelLength,SelStart 和 SelText。
RichTextBox 控件能以 rtf 格式和普通 ASCII 文本格式这
两种形式打开和保存文件 。 可 以 使 用 控 件 的 方 法
( LoadFile 和 SaveFile) 打开和保存文件 。
设计菜单
菜单能够有效改善用户界面 。 它是用户界面设计中一个非常
重要的内容 。
菜单具有多种不同的形式, 其中,标准 下拉菜单, 弹出式
菜单 是最常见的菜单形式 。
标准下拉菜单
标准下拉菜单的构成
包括:菜单栏, 菜单标
题, 菜单列表, 菜单项
等成分, 它们按照层次
关系合理组织 。
标准下拉菜单的操作
特点是:当单击一个菜
单标题 ( 如, 文件, )
后, 包含菜单项目的列
表就被拉下来 。
菜单属性
Visual Basic中的菜单也是对象 。 菜单中各个成分都可以被当作
为控件对象, 并具有和命令按钮相似的属性 。 其主要属性有,
Name属性 必须设置的菜单对象标识符 。
Caption属性 菜单对象标题 。
Index属性 菜单控件数组中元素的索引标识号 。
Checked属性 设置是否在菜单项旁出现复选标记 。
Enabled属性 设置菜单对象是否有效 。
Visible属性 设置菜单对象是否可见 。
用菜单编辑器创建菜单
在 Visual Basic 环
境下可以通过菜单编
辑器建立菜单 。
菜单编辑器中的控
件列表框列出当前窗
体的所有菜单控件 。
通过单击, 插入, 按
钮可以在现有的控件
之间增加一个菜单控
件, 该控件会在菜单
控件列表框中显示 。
弹出式菜单
弹出式菜单是独立于菜单栏而显示在窗体上的浮动菜单 。 在
弹出式菜单上显示的项目取决于按下鼠标右键时指针所处的
位置;因而, 弹出式菜单也被称为上下文菜单 。
弹出式菜单实质上既是下拉菜单中某个菜单标题下的菜单项
列表, 只是激活方式不同而已 。 为了显示弹出式菜单, 可使
用 PopupMenu 方法 。 该方法使用语法如下,
[object.]PopupMenu menuname [,flags [,x [,y [,boldcommand ]]]]
创建工具栏 ( 1)
一般情况下, 工具栏是用来配合菜单 。 工具栏具有菜单所
缺少的图形化的外观, 而且提供了比菜单更快速的访问方
式 。 因此, 利用工具栏与应用程序中最常用的菜单命令建
立联系, 由此可提高应用程序的用户操作速度 。
为便于创建工具栏, Visual Basic的专业版与企业版专门提
供了用于制作工具栏的 ToolBar 控件 。
创建工具栏 ( 2)
使用 ToolBar 控件创建工具栏的步骤如下,
1,引入控件集, 在, 部件, 对话框中, 选择, Microsoft
Common Controls 6.0‖,把 ToolBar, ImageList等控件引入到工
具箱 。
2,加入控件, 从工具箱选取 ToolBar, ImageList控件到设计窗体 。
3,向 ImageList 控件置入合适的图象 。
4,建立 ImageList与 Toolbar 之间的关联 。
5,在 Toolbar 中建立按钮 。
对话框
对话框分模式或无模式两种类型 。
如果一个对话框, 在可以切换到其它窗体或对话框之前要
求先单击, 确定, 或, 取消,, 则它就是模式的 。 一般情
况下, 显示重要消息的对话框总应当是模式的, 它要求程
序在继续运行之前, 必须对提供消息的对话框作出响应 。
无模式的对话框允许在对话框与其他窗体之间转移焦点而
不用关闭对话框 。 因此, 当对话框正在显示时, 可以在当
前应用程序的其他地方继续工作 。 无模式对话框用于显示
频繁使用的命令与信息 。
使用预定义对话框
预 定 义的对话框是依靠函 数来实现的, 有,InputBox,
MsgBox 两个函数, 分别用来提供输入对话框和消息对话框 。
语法格式分别是,
InputBox ( 提示字符串 [,标题字符串 ] [,文本框缺省字符串 ] )
MsgBox ( 提示字符串 [,按钮数值 ] [,标题字符串 ] )
使用自定义对话框
自定义对话框就是含有控件的窗体, 这些控件包括命令按钮, 选
取按钮和文本框, 它们可以为应用程序接收信息 。
可以按照以下操作来完成自定义对话框的制作 。
1,通过设置窗体的 Caption 属性, 为对话框加上合适的标题 。
2,对话框通常不需要移动, 改变尺寸, 最大化或最小化等操作 。
对话框边框尺寸也往往是固定的 。 要达到以上效果, 可以通过设置
BorderStyle,ControlBox,MaxButton 和 MinButton 属性获得 。
3,对话框必须至少包含一个退出该对话框的命令按钮 。 通常用两
个命令按钮,这两个按钮的 Caption 属性设置, 确定, 与, 取消, 。
第 6章 事件驱动
第 7章 文件处理和输出打印
第 8章 程序管理、编辑和调试
第 9章 创建应用程序
第 10章 图形、多媒体
第 11章 数据库应用
第 12章 Visual Basic其它功能
实例教学
课件说明
本课件是中国水利水电出版社发行的新
世纪高职高专系列教材之一, Visual Basic 6.0
程序设计教程, 的电子教学配套资料。可用
于教师开展本课程的多媒体教学。
多媒体课件内容包括:课程教学和实例
演示两个部分。其中,实例内容取自教材中
的三个典例,本课件含这些典例的源程序和
课件说明
经过编译后的程序。因此,本课件实例内容
也可以用做学生上机实践素材。但为使用好
其中的实例,需要安装 Visual Basic 6.0 专业版
或企业版。
本课件由曾强聪制作。其采用开放式结
构, 因此教师可以根据自己的实际教学需要
进行补充或改动。
程序设计
Visual Basic 6.0
制作人:曾强聪
2000 年 8 月