第 4章 窗体及常用控件
窗体和控件是 VB作为可视化编程
的重要工具,在这一章中介绍窗体及
常用控件,如:标签、文本框、列表
框、组合框、命令按钮、单选按钮、
检查框、框架、滚动条、时钟等基本
控件的使用。本章的内容如下:
4.1 窗体设计
4.2 基本控件
4.3 使用 ActiveX 控件和可插入对象
4.4 控件应用举例
4.1 窗体设计
返 回
窗体对象是开发 VB程序的一个基本平
台,绝大多数控件都要添加在窗体上。在本节
中集中介绍窗体的属性、方法、事件以及窗体
的工作过程。
一、窗体的属性、事件和方法
1、窗体的属性
设置窗体的属性有两种方法:
☆ 在程序设计时手工在, 属性, 窗口
中设置;
☆ 在程序代码中设置,在程序运行时
实现。
窗体的属性不仅影响
窗体的外观,还控制着窗
体的位置、大小和行为等。
窗体的属性很多,常用的
窗体属性有:
下一页上一页
Caption属性
该属性决定窗体标题栏
中显示的文本。
MaxButton属性
决定窗体是否能最大化。
它是一个逻辑值。当属
性为 True时,窗体右上
角有最大化按钮。
上一页 下一页
MinButton属性
决定窗体是否能最小化。它是一个逻辑值。
当属性为 True时,窗体右上角有最小化按钮。
ControlBox属性
决定窗体标题拦中是否有控制菜单框,它也是
一个逻辑值。当属性为 True时,窗体左上角有控
制菜单框。
Moveable属性
Borderstyle边框风格属性
该属性决定窗体是否可移动,它是一个逻辑值,
当属性为 True时,表示窗体可以移动。
该属性用来设置窗体的大小及边框的样式,有 4
种情况:
0 — None:窗口无边框
2 — Fixed Single:窗口为单线边框,大小不能改变
3 — Sizable:窗口为双线边框,可以改变窗口大小
4 — Fixed Double:窗口有双线框架,不能改变大小
Icon属性
设置窗体最小化时显示的图标。 VB中的图标文
件存放在 Graphics\Icons下的子目录中。
MDIChild属性
该属性用来设置 MDI子窗体,它是一个逻辑值,
当属性为 True 时,表示该窗体是 MDI子窗体。
WindowState属性
该属性决定了窗体执行时的显示状态,有 3个取值:
0 — 正常窗口状态,有窗口边界。
ShowInTaskerbar属性
AutoRedraw属性
1 — 最小化状态,以图标方式运行。
2 — 最大化状态,无边框,充满整个屏幕。
该属性决定一个窗体对象是否出现在 Windows任
务栏中,它是一个逻辑值,为 True时表示窗体在任
务栏中。该属性值在运行时为只读状态。
该属性控制窗体图像的重建 。 它是一个逻辑值,
当属性为 True时, 在其他窗口覆盖某窗体后, 又
返回该窗体时, VB将自动刷新或者重画该窗体的
所有图形, 否则必须调用一个事件过程来执行这
项任务 。 也就是说, 只有当 AutoRedraw设置为
True时才能重画如 Circle,Cls,Point和 Print等方
法的输出 。
2、窗体的事件
窗体最常用的事件有 Load, Activate,
Deactivate,Click和 DblClick 。 这里只介绍前
3个事件 。 窗体的 Click和 DblClick事件与控件
的相应事件相同, 后面再作介绍 。
下一页上一页
Load事件
当一个窗体被装入工作区
时触发的事件 。 该事件通
常用来在启动应用程序时
对属性和变量进行初始化 。
Activate事件
当一个窗体成为活动窗口时所触发的事件 。 用户单
击某个窗体, 或在程序代码中用 Show方法显示窗
体, 或用 SetFocus把焦点设置在某窗体上都使该窗
体成为活动窗口, 此时触发 Activate事件 。 该事件
对初始化窗体行为十分方便 。
Deactivate事件
当另一个窗体或应用程序被激活时, 该窗体就
会产生一个 Deactivate的事件 。 该事件对结束窗
体行为十分方便, 例如, 在 Deactivate事件中,
可以把对该窗体操作所做的更改保存到文件或数
据库中 。
3、窗体的方法
窗体的方法有多种,他们可以调用文本和图形,
在窗体表面上输出、写或画,这样的方法有 Print、
Line,Circle,Cls等。对这类方法我们不过多介绍,
我们主要介绍一些对窗体的行为产生影响的方法。
Show方法
Show方法可以使一个窗体可见, 使用格式如下:
对象,Show
其中, 对象是窗体的名称 。 调用 Show方法与设置
窗体 Visible属性为 True具有相同效果 。
调用窗体的 Hide方法, 能够隐藏一个窗体 。 当一
个窗体调用 Hide方法后, 该窗体就从屏幕上被删除,
并且它的 Visible属性被设置为 False。 调用的格式
如下,对象,Hide
Hide方法
Refresh方法
该方法用于对窗体刷新 。 当用户对窗体操作后,
调用 Refresh方法, 可以刷新窗体, 使窗体显示最
新的内容 。 调用 Refresh方法的格式如下:
对象,Refresh
例 li4-1-2点击此处进入
返 回上一页 下一页
二、向窗体上添加控件
1、生成控件及调节控件大小和位置:
单击工具箱中按钮 在窗体上拖动
利用调节柄改变大小
在控件中央拖动鼠标
2、使用网格
工具菜单 选项 通用 显示网格
3、多个控件的生成及操作
双击某个工具按钮生成多个相同控件
① 多个控件的选中
②控件的迭放层次
③多个控件的编辑
④窗体编辑器的使用 视图 工具栏 窗体编辑器
4、控件数组
☆ 控件数组的定义
控件数组是由一组相同类型的控件组成,它们公
用一个控件名,具有相同的属性。当建立控件数组时,
系统给每个元素赋一个唯一的索引号( Index),通过属
性窗口的 Index属性,可以知道该控件的下标是多少,控
件数组的第一个下标是 0。
控件数组适合若干个控件执行的操作相似的场合,
控件数组共享同样的事件过程。
☆ 控件数组的建立
① 在设计时建立,步骤为:
? 在窗体上画出某个控件,可以进行控件名的
属性设置,这是建立的第一个元素;
? 选中该控件,进行 copy和 paste操作,系统
会提示:
“已有了命名的控件,是否要建立控件数组,
单击 Yes按钮后,就建立了一个控件数组元素,进行若干次
Paste操作,就建立了所需要的控件数组;
? 进行事件过程的编程。
② 运行时添加控件数组,步骤为:
? 在窗体上画出某控件,设置该空间的 Index属
性值为 0,表示该控件为数组;这是建立的第一个元素;
? 在编程时通过 Load方法添加其余的若干个元
素,也可以通过 Unload方法删除某个元素;
? 每个新添加的控件数组通过 Left和 Top属性,
确定其在窗体中的位置,并将 Visible属性设置为 True。
例 li4-0,建立含有 4个命令按钮的控件数组,当单击某个按钮
时,分别显示不同的图形或结束。
例 li4-0-1,建立一个类似国际象棋的棋盘。要求:
设计时在窗体上放一个 Label控件,其 Index属性为 0,
BackColor属性为黑色。程序运行时产生 64个 Label控件数组
元素,BackColor黑白交替。
三、设置启动窗体
1、设置启动窗体
?从“工程”菜单中选取“工程属性”命令,打开“工
程属性”对话框
? 在显示的“工程属性”对话框中,选取“通用”选
项卡
?在“启动对象”列表框中,选取要作为新启动窗
体的窗体
2、不使用启动窗体开始程序的运行
返 回上一页 下一页
1、创建状态(窗体的创建)
Initialize事件是窗体创建状态开始的标志。因而,放
在 Form_ Initialize( )事件过程中的代码,就是窗体创建
时最先执行的代码。处于这种状态时,窗体是作为一个
对象而存在,但还没有窗口,而且它的控件也不存在,
也就是说在这个状态下,只有窗体的代码部分在内存中,
而窗体的可视部分还没有调入。虽然该状态可能很短暂,
但任何窗体都要经过这个状态。
上一页 下一页
四、窗体的生命周期
窗体在整个
存活期中有
四种状态,
创建状态
加载状态
可见状态
卸载状态
2、加载状态(加载窗体)
▲ Load事件是加载状态的开始
▲ 加载窗体则 Form_Load()事件过程中的代码开始执行
▲窗体如果满足以下任一条件即可自动加载
①该窗体在“工程属性”对话框的“通用”选项卡中
被指定为启动对象
②窗体中首先被调用的属性或方法是 Show方法,例
如,Form1.Show
③ 首先被调用的属性或方法是窗体内置的成员,例如:
调用了窗体的 Move方法或使用了窗体中某个控件的属性。
④用 Load语句加载窗体 如,Load Form2
在上面所列的①、②两种情况下,一旦 Form_Load( )事
件执行完毕,窗体就直接可见。而对于后面的两种情况,窗
体将保持加载状态,但不显示。
返 回上一页 下一页
3、可见状态
在加载窗体后, 使用窗体的 Show方法, 可以使窗体进
入可见状态 。 一旦窗体可见, 用户就能和它交互作用 。
( 1) 显示窗体,要使一个窗体可见, 应调用 Show方法 。
Forml.Show
( 2) 隐藏一个窗体, 应调用窗体的 Hide方法 。 当一个窗
体调用 Hide方法后, 该窗体就从屏幕上被删除, 并且它的
Visible属性被设置为 False,窗体返回加载状态 。 用户将无
法访问隐藏窗体上的控件, 但是对于运行中的 VB应用程
序, 隐藏窗体的控件仍然是可用的 。 在程序中, 要判断一
个窗体是否处于可见状态, 可以使用它的 Visible属性, 例
如:
If Form2.Visible Then
Form2.Hide ˊ 如果处于可见状态则隐藏之
Else
Form2.Show ˊ 如果窗体被隐藏则显示之
End if
4、卸载状态(窗体的卸载)
窗体在卸载时可以是隐藏的, 也可以是可见的 。 若没隐藏,
则它将保持可见直到卸载完毕, 内存和资源完全收回 。
▲ QueryUnload在任一窗体卸载前在所有窗体中发生,
提供了停止窗体卸载的机会 。 如果某些数据希望保存, 则
此时将提示保存或忽略所做的更改 。
▲ Unload在每个窗体卸载时发生。
结束应用程序
Unload Me ?当只有一个窗体时结束应用程序
End ?立即强行结束应用程序
一,VB中的控件
二、基本控件的常用属性
返 回上一页 下一页
4.2 基本控件
三、设置 Tab键的顺序
四、控件默认属性
五、常用控件
1、内部控件
内部控件就是在工具箱中默认出现的控件, 如命令按
钮, 标签, 文本框等, 这些控件在 VB的可执行文件中, 因
此也称为 VB的基本控件 。 内部控件总是出现在工具箱中,
不能从工具箱中删除 。
2,ActiveX控件
扩展名为,ocx的独立文件,包括各种版本 VB提供的控
件和仅在专业版和企业版中提供的控件,另外还有许多第
三方提供的 ActiveX控件。
3、可插入的对象
有些对象能够添加到工具箱中, 例如一个 Excel工作
表, 这时可以把它们当作控件使用, 这样的对象称可插入
对象 。 其中一些对象还支持 OLE自动化, 使用这种控件就
可以在 VB应用程序中编程控制另一个应用程序的对象 。
上一页 返 回下一页
一,VB中的控件
学习 VB,很大程度上是在学习各种控
件的属性和设置,每一个控件都有自己的属性,
如名称( Name)、是否可见( Visible)等。
控件的属性可以在设计时通过 属性窗口设置,
也可以在编程时通过 代码窗口改变 。需要注意
的是,不同的控件有许多相同的属性, 也有许
多不同的属性,例如,文本框就没有 Caption
属性。
控件与窗体一样,也具有属性、方法和事
件,控件常用属性如下:
上一页 下一页
二、基本控件的常用属性
◆ 外观
Caption(标题)属性,控件上显示的内容
ForeColor(前景颜色)属性,控件的正文颜色
BackColor(背景颜色)属性,正文以外显示区域颜色
BackStyle(背景风格)属性,0—Transparent 透明显示
1—Opaque不透明
AutoSize属性,决定控件是否自动调整大小
True — 自动调整大小
False — 保持原设计大小,正文过长自动裁减◆ 位置
Height,Width属性,决定控件的高度和宽度
Top属性,控件(或窗体)到窗体(或屏幕)顶部距离
Left属性,控件(或窗体)到窗体(或屏幕)左边距离
Alignment属性,决定控件内的对齐方式
0—Left Justify:正文左对齐
1—Right Justify:正文右对齐
2—Center:正文居中
◆ 行为
Enabled属性,决定控件是否允许操作
True—允许用户操作,并对操作作出响应
False—禁止用户进行操作,呈暗淡色
Visible属性,决定控件是否可见
True—程序运行时控件可见
False—程序运行时控件隐藏
TabIndex属性,决定按 Tab键时焦点在各控件移动顺序
上一页 下一页
◆ 杂项
Name(名称)属性,对象的标识、不显示在窗体上
WordWarp属性,在水平或垂直方向上改变显示区域 大小
True—表示按文本和字体大小在垂直方向上改变
显示区域的大小,而在水平方向上不发生变化
False—表示在水平方向上按正文长度放大和缩小;
在垂直方向上以字体大小来放大或缩小显示区域
字体 Font
Font属性改变文本的外观, 其中:
FontName属性 — 字符型, 决定了控件上正文的
字体 。
FontSize属性 — 整型, 决定了控件上正文的字体
大小 。
FontBold属性 — 逻辑型, 表示控件上正文是否
是粗体 。
FontItalic属性 — 逻辑型, 表示控件上正文是否
是斜体 。
FontStrikethru属性 — 逻辑型, 表示控件上正文
是否加删除线 。
FontUnderline属性 — 逻辑型, 表示控件上正文
是否带下划线 。
1、焦点的概念
☆ 焦点是接收用户鼠标或键盘输入的能力。
☆ 当对象具有焦点时,可接收用户的输入。在 Windows
下同时运行的多个应用程序中,只有具有焦点的应用程序
有活动标题栏,才能接受用户输入。
☆ 在 VB窗体中,只有具有焦点的文本框才接收和显示
由键盘输入的文本内容。
☆ 大部分控件可以接收焦点, 但有些控件不能接收焦点,
如 Frame,Label,Menu,Line,Shape,Image和 Timer等 。
☆ 对象是否具有焦点是可以看出来的 。 例如, 当命令按
钮具有焦点时, 标题周围的边框将突出显示 。
☆ 只有当对象的 Enabled和 Visible属性为 True时, 它才
能接收焦点 。
上一页 返 回下一页
三、设置 Tab键的顺序
2,Tab键顺序
☆ 所谓 Tab顺序,就是按 Tab键时焦点在各个控件上移动
的顺序。当有多个控件时,Tab顺序与控件建立的顺序相
同。
☆ 设置控件的 TabIndex属性可以改变 Tab顺序。 因为顺
序编号从 0开始,TabIndex的最大值总是比 Tab键顺序中
控件的数目少 l。即使 TabIndex属性值高于控件数目,VB
也会将这个值转换为控件数减 1。
☆ 不能获得焦点的控件, 以及无效的和不可见的控件, 仍
具有 TabIndex属性, 即这些控件也包含在 Tab顺序中, 但
在按 Tab键时, 这些控件将被跳过 。
☆ 对于能获得焦点且有效的控件, 如果不希望按 Tab键时
能选中该控件, 则可以将该控件的 TabStop属性设为 False,
这样便可将此控件从 Tab顺序中删除 。
VB中把某个控件的最重要属性称为该控件属性的值或默
认属性。
对于默认属性,在程序运行时可以直接改变控件的
值而不必指定该控件的哪个属性。
部分控件的默认属性
控件 值 控件 值
文本框 Text 标签 Caption
命令按钮 Caption 图形图像框 Picture
单选按钮 Value 检查框 Value
上一页 返 回下一页
四、控件默认属性
五、常用控件
1、命令按钮、标签和文本框
2、单选钮、检查框和框架
3、列表框和组合框
4、滚动条
5、计时器
6、驱动器、目录和文件列表框
上一页 返 回下一页
上一页
下一页
命令按钮、标签和文本框
☆ 命令按钮是 Windows应用程序中最常用的控
件, 用于完成某种功能, 主要接收 Click事件,
当用户单击它时将引发相应的事件过程 。
☆ 在工具箱中, 它是一个带有凸起圆角矩形
图案的按钮 。
☆ 在程序运行时, 常用以下方法选中命令按
钮:
( l) 用鼠标单击 。
( 2) 按 Tab键将焦点移到相应按钮上, 再按
回车键 。
( 3) 按快捷键 ( Alt十有下划线的字母 ),
设置快捷键的方法见下面的 Caption属性介绍
1 命令按钮
(1) 命令按钮的属性
★ Caption属性:
▲ Caption属性用于设定命令按钮的标题,即命
令按钮上将显示的文字。
▲ 在 Caption属性设置时,如果某个字母前加入
,&,,则程序运行时标题中的该字母带有下划线,该
带有下划线的字母就成为快捷键。
★ Default属性:
▲ 只有命令按钮有 Default属性。
▲ 该属性是逻辑型的,用于设定该命令按钮是
否为默认按钮,当 Default属性值为 True时,按 Enter
键相当于用鼠标器单击了该按钮。
▲ 在一个窗体中只能有一个按钮的 Default属
性设为 True。即在一个窗体上只能有一个命令按钮为默
认按钮。
★ Cancel属性:
▲ Cancel属性是命令按钮独有的,
▲ 当 Cancel属性值为 True时,按 Esc键相当
于用鼠标器单击了该按钮。
▲ 在一个窗体中只能有一个按钮的 Cancel属
性设为 True。即在一个窗体上只能有一个命令按钮
为 Cancle按钮。
★ Value属性:
▲ 该属性在设计阶段无效,只能在程序运行
期间设置或引用,它是逻辑型的,用于检查该按钮
是否被按下。 True表示该按钮被按下,False(缺
省)表示按钮末被按下。在程序运行过程中,只要
Value值为 True,便引发按钮的 Click事件转去执行
相应的程序。
★ Style属性:
设定命令按钮的类别,有 0,1两个取值。
0 — 表示按钮为标准按钮,按钮上不能显示图
形,这是缺省值。
1 — 表示按钮为图形按钮,这时会在 Caption
文本上方显示由 Picture属性指定的图形。
注,若在 Picture图片属性中选择了图片文件,
则 Style属性值必须为 1,否则无法显示图形。
★ Picture属性:
用于设定命令按钮上显示的图形,可以在设计阶
段单击其后的省略号按钮选择一个文件(以,bmp
和,Ico为扩展名的图片文件),也可以在代码中设
置。只有当命令按钮的 Style属性设为 1时,才会在
命令按钮上显示图形。
★ ToolTipText属性:
用于设定图形的提示文字,与 Picture图片属性同时
使用。
( 2)命令按钮的 方法和事件
▲ 命令按钮没有特殊的方法和事件,它最
重要的事件就是 Click事件,而且几乎所有的
Windows应用程序都是使用它的 Click事件。
▲ 注意:它没有 DblClick事件。
( 3)命令按钮的使用
命令按钮是最常用的启动控件,在程序中主
要使用它的 Caption属性作为命令按钮的说明,而
在它的 Click事件中写人相应的程序代码。
上一页 下一页
例:利用命令按钮控制改变信号灯的显示。
例 4-3点击此处进入
(1)标签控件的常用特有属性
★ Alignment属性,
设定标签中文本的对齐方式。有三个可选项:
0 — 表示左对齐,为系统默认值;
1 — 表示右对齐;
2 — 表示居中。
★ Autosize属性,
用于设定标签的大小是否自动调整。共有两个选
项,True — 表示自动调整大小
False — 表示不自动调整大小,默认为 False。
上一页 下一页
2 标签控件( Label)
标签主要用来显示(输出)文本信息,但是不能
作为输入信息的界面,也就是说,标签控件的内容只
能用 Caption属性来设置或修改,而不能直接编辑。
★ BackStyle属性,
用于设定标签的背景模式。共有两个选项:
0 — 标签重叠显示在背景上,不覆盖原来的背景;
l — 显示标签时将背景覆盖掉,此为系统默认值。
★ BorderStyle属性:
用于设定标签的边框形式。共有两个设置值:
0 — 无边框,默认状态
l — 单线框,具体的边框显示样式,还要看
Appearance的设置。当 Appearance为平面时,边框为
单直线形的;当 Appearance为三维时,边框为凹陷形
的。
★ Caption属性:
用于设定标签上显示的文本内容。
★ Index属性,
若当前标签控件属性为控件数组,用 Index属性设定它
在这一数组中的下标。
★ WordWrap属性,
用来设定标签中的文本在显示时是否自动换行。共有 2
个选项:
True — 有自动折行功能
False — 没有折行功能,这时若标签内容太多,一
行显示不下,就会被截断。默认值为 False。
( 2)标签的方法
标签的常用方法只有 Move,格式如下:
Move left,top,width,height
其中 left,top,width,height分别表示移动目的位
置的坐标和大小 。 left为必要参数, 其他三个为可选参
数 。
上一页 下一页
( 3)标签的事件
一般很少使用标签事件, 但有时为了特殊需要,
也会用到以下几种标签事件:
★ Change事件,
当标签的内容被修改时产生该事件。标签内容的修改是
由更改 caption属性引起的。基本语法为:
Sub Label_Change([Index As Integer])
★ Click事件,
鼠标单击产生 Click事件。其事件处理过程的基本语法
是:
Sub Label_Click([Index As Integer])
★ DblClick事件,
鼠标双击产生 DblClick事件。基本语法为:
Sub Label_DblClick([Index As Integer])
其中, 参数 Index是一个整数值 。 若当前标签是一个控
件数组, 则 Index表示该标签在数组中的下标, 否则就
不需要这一参数 。
◆ (不讲 )开发一个加法计算器应用程序。其中,
,被加数,,, 加数, 以及, 和数, 称为标签
( Label),相应的三个输入输出数据框称为文本框
( TextBox),此外还有三个命令按钮
( CommandButton)。用户可以在被加数和加数相应的
文本框内输入数据,再单击, 加法, 按钮,便能在
,和数, 对应的框中看到相加的结果。当用户单击
,清除, 按钮时,就会清除各文本框中的数据。当用
户单击, 关闭, 按钮时就会关闭该窗口并退出应用程
序。在文本框中输入数据时,用户可以进行一般的插
入、修改和删除操作。
( 4)标签举例
◆ 例 4-4点击此处进入
对象 属性名 属性值
窗体 (名称) frmAdder
Caption 加法计算器
标签 1 Caption 被加数
标签 2 Caption 加数
标签 3 Caption 和数
文本框 1 (名称) txt1
Caption (空)
文本框 2 (名称 ) txt2
Caption (空)
文本框 3 (名称) txt3
Caption (空)
按钮 1 (名称 ) cmdAdd
Caption 加法
按钮 2 (名称) cmdClear
Caption 清除
按钮 3 (名称) cmdClose
Caption 关闭
上一页
下一页
本例中各个对象、有关的属性名以及需要设置
的属性值设计如下表
Private Sub cmdAdd_Click()
txt3.text=Str$(Val(txt1.Text)+Val(txt2.Text))
End Sub
Private Sub cmdClear_Click()
txt1.Text=""
txt2.Text=""
txt3.Text=""
End Sub
Private Sub cmdClose_Click()
End
End Sub
注:由于文本框中的 Text属性的值是字符串类型的,所以
不能将两个文本框中的字符串直接进行加法运算,需要先
用 Val函数将代表数值的字符串转换成双精度实数,才能
进行数值运算。数值变量的运算结果还是数值型的,需要
用 Str$函数将其转换成字符串后,才能赋给文本框的 text
属性。
返 回
文本框又称编辑框, 是最常用的文本输入输出控件,
该区域可以输入, 编辑, 修改和显示正文内容 。
( 1)文本框的属性
文本框没有 Caption属性 。 下面主要介绍它的
一些特殊的属性 。
★ Text属性:
用于设置或取得文本框中显示的文本,是文本框的默认
属性。在程序中使用这一属性取得当前文本框中的文本,
即在程序执行时,用户通过键盘输入的正文内容,VB会
自动将其保存在 Text属性中。
★ MaxLength属性:
用于设定文本框中能够容纳的最多字符数。
0—表示可容纳任意多个输入字符,默认值。
正整数 —表示该数值为可容纳的最多字符数。
上一页 下一页
3 文本框( TextBox)
★ MultiLine多行属性:
用于设定文本框中是否允许显示和输入多行文本。
True — 表示允许显示和输入多行文本。
False — 表示不允许显示和输入多行文本。
★ ScrollBars属性:
用于设置文本框中是否带有滚动条。当 MultiLine属
性为 True时,ScrollBars属性才有效,因此这一属
性一般要和 Multiline属性协调使用。
0—None:无滚动条
1—Horizontal:加水平滚动条
2— Vertical:加垂直滚动条
3—Both:同时加水平和垂直滚动条
★ HideSelection隐藏选定属性:
用于设定焦点不在该文本框中时,所选定的文本是
否仍反白显示。它是逻辑值,True表示要隐藏选定
文本,即当焦点不在当前编辑框中时,所选定的文
本不再反白显示; False则相反。
★ PasswordChar口令字符属性:
用于设定文本框是否用于输入口令类文本。当把这
一属性设定为一个非空字符串时(如常用, *” ),
运行程序时用户输入的文本就会只显示这一非空字
符,但系统接收的却是用户输入的文本。系统默认
为空字符,这时,用户在程序运行中输入的可显示
文本将直接显示在文本框中。
★ ReadOnly只读属性:
用于设定程序运行是能否对文本框中的文本进行编
辑。这是一个逻辑型的属性,默认值为 False,表示
运行程序时可以编辑其中的文本;当选择 True时,
表示运行程序时不能编辑其中的文本。
上一页 下一页
★ TabStop属性:
用于设定运行时用户能否用 Tab键跳入该文本框。当选
择 True时,表示可以跳入;当选择 False时表示不能跳
入,如果这时要进入这一编辑框,可用鼠标单击这一
编辑框。
★ Locked属性:
指定文本控件是否可被编辑。默认值为 False,表示可
编辑,当设置为 True时,文本控件相当于标签的作用。
★ SelStart,SelLength和 SelText属性:
在程序运行中,对文本内容进行选择操作时,这三个
属性用来表示用户选定的正文:
SelStart — 选定的正文的开始位置,第一
个字符的位置是 0
SelLength — 选定的正文长度。
SelText — 选定的正文内容。
上一页 下一页
( 2)文本框的方法
文本框最有用的方法是 SetFocus,该方法是把光标移
到指定的文本框中 。 当在窗体上建立了多个文本框后,
可以用该方法把光标置于所需要的文本框上 。 它的格式
是:
[ 对象, ] SetFocus
激活文本框的方法有:
★ 按 Tab键或用鼠标单击文本框
★ SetFocus方法:把光标移到指定的文本框中。
( 3)文本框的事件
★ Change事件:
当用户输入新内容或当程序将 Text属性设置为新值,
从而改变文本框的 Text属性时会引发该事件 。 当用户键
入一个字符时, 就会引发一次 Change事件 。 例如用户键
入 Visual Basic一词时, 会引发 12次 Change事件 。
★ KeyPress事件
当用户按下并且释放键盘上的一个键时, 就会引发焦
点所在控件的 KeyPress事件, 此事件会返回一个
KeyASCII参数到该事件过程中 。
例如, 当用户键入字符, a”时, 返回 KeyASCII的值为
97,通过 Chr( KeyAscII) 可以将 ASCII码转换为字符
,a”。
★ GotFocus事件:
当光标转到文本框中时发生, 最常用的处理是对文本
内容的选定 。 通常情况下, 能引发 GotFocus事件的情
况是:
l) 用户按 Tab键, 跳转到该文本框中;
2) 用户用鼠标单击文本框;
3) 用户在程序代码中用 SetFocus方法激活了该
文本框 。
GotFocus事件过程的基本语法是:
Sub Text_GotFocus([ Index As Integer])
★ LostFocus事件:
当光标离开文本框中时发生,主要用来对数据更新进
行验证和确认。
可能引发 LostFocus事件的情况是:
◆ 用户按 Tab键, 跳出该编辑框;
◆ 用户用鼠标单击其他控件;
◆ 用户在程序代码中用 SetFocus方法激活了其
他控件 。
LostFocus事件过程的基本语法是:
Sub Text_LostFocus([ Index As Integer])
( 4)文本框的使用 例 lx4-5点此进入
例 lx4-4-2此进入 例 lx4-3点击此处进入
例 lx4-7点此进入 (先输正确的,再输错误的 )
上一页 下一页
( 1)单选按钮和复选框的区别
单选按钮( OptionButton)的左边有一个 ○ 。单
选按钮必须成组出现,用户在一组单选按钮中必须并且
最多只能选择一项。当某一项被选定后,其左边的圆圈
中出现一个黑点 ?。单选按钮主要用于在多种功能中由
用户选择一种的情况 。
复选框( CheckBox又称检查框)的左边有一个 □,
复选框列出可供用户选择的选项,用户根据需要选定其
中的一项或多项。当某一项被选中后,其左边的方框就
变成 ?。复选框主要用 于对某种或几种状态进行开关选
择。
上一页
4 单选按钮 复选按钮
( 2)单选钮和检查框的属性
★ Caption 属性,
设置单选按钮或检查框的文本注释内容,即单选按钮
或检查框边上的文本标题。
★ Alignment属性,
用于设定单选按钮或检查框标题的位置。
0 — 表示控件按钮在左,标题在右。
1 — 表示控件按钮在右,标题在左。
★ Value属性:
用于设定或检查单选按钮或检查框是否为选定状态。
对于单选按钮,当为 True时表示单选按钮被选定,
当为 False时表示未被选定,系统默认值为 False。
对于检查框,它有三个值供选择使用,
0 — Unchecked:表示检查框未被选定,此为
系统默认值;
l — Checked:表示检查框被选定;
2 — Grayed:表示检查框不可使用,即禁止用
户选择,此时检查框变成灰色。
★ Style属性:
指定单选钮或检查框的显示方式, 用于改善单选钮
或检查框的视觉效果 。
0—Standard:标准方式 。
1—Graphical:图形方式 。
( 3) 单选钮和检查框的事件
单选按钮和复选框都能接收 Click事件, 但一般不需
要编写 Click事件过程 。 因为当用户单击单选按钮或
复选框时, 他们自动改变状态 。
( 4)单选钮和检查框的 方法
单选按钮和复选框的常用方法是 SetFocus,其功
能和文本框相同。
例 li4-7点此进入
上一页 下一页
由于单选按钮的特点是当选定其中的一个
时,其余会自动关闭。所以,当需要在 同一个窗体
中建立几组相互独立的单选按钮 时,就需要用框架
( Frame)将每一组单选按钮框起来,这样在一个
框架内的单选按钮为一组,对他们的操作不会影响
框架外的单选按钮。
5 框架
( 1)框架( Frame)的属性
★ Caption 属性,
用于设定框架的标题名称。若为空字符,则框架为封
闭的矩形框,但与矩形框起来的控件不同的是框架的
标题可以有快捷字母。
★ Enable属性,用于设定框架是否为活动状态。
★ Visible属性,用于设定框架及其包含的控件是否
可见。
在窗体上创建框架的步骤:
★ 必须先建立框架, 然后在其中建立各种控件 。
★ 先单击工具箱上的工具, 然后在框架中适当位置拖拉出
适当大小的控件 。
★ 如果要用框架将现有控件分组, 则可先选定所有控件,
将它们剪切 ( Ctrl+ X) 到剪贴板, 然后选定框架并将剪贴
板上的控件粘贴 ( Ctrl+ V) 到框架上 。
( 2) 框架的事件
框架可以响应 Click和 DblClick事件 。 但是, 在应
用程序中一般不需要编写有关框架的事件过程 。
( 3)框架的用法
上一页 下一页
要求:窗体中建立两组单选按钮,分别放在名
称为, 字体, 和, 大小, 的框架中。在文本框中
可输入多行汉字。利用字号框和风格框内的控件
可以改变文本框中文字的字号和风格。
例 li4-8点击此处进入
上一页 下一页
列表框( ListBox)通过显示多个选择项,供
用户选择其中的项,达到与用户对话的目的 。如
果有较多的选项而不能一次全部显示时,VB会自动
加上滚动条。
列表框最主要的特点是 只能从其中选择, 而
不能直接写入或修改其中的内容 。
使用列表框输入数据是保证数据标准化的重
要手段, 它是一个重要的输入控件 。
6 列表框
1,列表框的属性
★ ListIndex属性,表示执行时选中的列表项序
号,从 0开始,若未选中任何项,ListIndex的值为 -
1。
★ ListCount属性,表示列表框中项目的数量。
ListCount-1表示最后一项的序号。 该属性只能在程
序中设置或引用。 ★ List属性,该属性是一个
字符型数组,存放列表框的
选项,list数组的下标是从
0开始的。例如,list(0)
的值是, 马明, 。该属性在
设计状态和程序中都可以设
置。
★ Selected属性,用于判断列表项是否被选中,
是一个逻辑数组。如,List.Selected(0)=True
表示第一项被选中。该属性只能在程序中设置或
引用。
★ Text属性,表示被选中列表项的文本内容。该
属性是默认属性,只能在程序中设置或引用。
在上表中,如果选定, 吴海燕,,则 text属性
值为, 吴海燕,
★ MultiSelect属性,用于设定列表框内是否允许
同时选择多个列表项。有 3种方式:
0 — None:禁止多项选择
1 — Simple:简单多项选择。鼠标单击或按
空格键表示选定 /取消一个已经选定的选择项。
3 — Extended:扩展多项选择。按住 Ctrl键,
同时用鼠标单击或按空格键表示选定 /取消一个已
经选定的选择项;按住 Shift键,同时单击鼠标或
移动光标键,就可以从前一个选定的项扩展到当
前选择项,即选定多个连续项。
上一页 下一页
2,列表框的方法
列表框中的选择项可以简单地在设计状态通过
List属性设置,也可以在程序中用 AddItem方法来
填写,用 RemoveItem或 Clear方法删除。
★ AddItem方法,把一个选项加入列表框 。
格式,对象,AddItem item [,Index]
其中,item是将要加入列表框的选项。必须是字
符串表达式。
Index决定新增项目在列表框或组合框中的
位置。如果 index省略,则添加的列表项将放在最
后。
★ RemoveItem方法,用于删除列表框中的列表项。
格式,对象,RemoveItem Index
其中 Index是被删除项目在列表框中的位置 。
★ Clear方法,用于清除列表项中的所有内容。
格式,对象,Clear
上一页
下一页
3,列表框的事件
列表框常用的事件就是 Click,DblClick、
GotFocus,LostFocus等大多数控件通用的事件
4,列表框的使用
列表框控件显示一个项目列表,让用户从其中选
择一项或多项。如果项目总数超过可显示的项目
数,就自动添加滚动条。它是进行快速和规范输
入的好工具。
(不讲)举例,利用列表框显示学生的籍贯,并可以
添加列表项。创建下图所示窗口,选择列表框中学生
姓名,在籍贯处显示该学生的籍贯;单击, 添加, 按
钮,出现输入学生姓名文本框,并且按钮的文字变为
,确定,,此时输入姓名,在显示籍贯处输入籍贯,
单击, 确定, 按钮,将项目添加到列表框中。
对象 属性名 属性值
窗体 (名称) Form1
Caption Form1
列表框 (名称) Lst
List (空)
标签 1 (名称) LblName
Caption 学生姓名
标签 2 (名称) LblNative
Caption 学生籍贯
文本框 1 (名称) TxtName
Text (空)
文本框 2 (名称) TxtNative
Text (空)
命令按钮 (名称) CmdAdd
Caption 确定
上一页 下一页
Dim NativeArray() As String ?定义籍贯数组为动态数组
‘对列表框初始化
Private Sub Form_Load() ReDim NativeArray(0 To 8)
Lst.AddItem“李亿” NativeArray(0) = "天津 "
Lst.AddItem,王晓波” NativeArray(1) = "武汉 "
Lst.AddItem,万明” NativeArray(2) = "上海 "
Lst.AddItem,张君” NativeArray(3) =,北京”
Lst.AddItem,马萧萧” NativeArray(4) = "云南 "
Lst.AddItem,季林” NativeArray(5) = "南京 "
Lst.AddItem,陈奇” NativeArray(6) = "广州 "
Lst.AddItem,朱小 NativeArray(7) =,大连”
Lst.AddItem,周和平” NativeArray(8) =,河北”
End Sub
上一页 下一页
'列表框 Click事件,姓名标签及文本框隐藏,籍贯处显示学生籍贯
Private Sub Lst_Click()
CmdAdd.Caption = "添加 "
TxtName.Visible = False
LblName.Visible = False
TxtNative.Text = NativeArray(Lst.ListIndex)
End Sub
'单击添加按钮事件
Private Sub CmdAdd_Click() 例 li4-9-1点击此处进入
CmdAdd.Caption = "确定 "
TxtName.Visible = True
LblName.Visible = True
Lst.AddItem TxtName 例 li4-10点击此处进入
i = Lst.ListCount
ReDim Preserve NativeArray(i)
NativeArray(Lst.ListCount - 1) = TxtNative.Text
TxtName = ""
TxtNative = ""
End Sub 上一页 下一页
组合框 (ComboBox)是一种同时具有文本框和
列表框特性的控件, 用户既可以在其列表框部分
选择一个固定的字符串, 也可以在其文本框部分
输入一个新的字符串 。
组合框有三种不同的风格,下拉式组合框,
简单组合框 和 下拉式列表框
★ 下拉式组合框,显示在屏幕上的仅是文本编
辑框和一个下拉箭头。
★ 简单组合框,将文本编辑框与列表框一起显
示在屏幕上。
★ 下拉是列表框,功能与下拉式组合框类似,
区别是不能输入列表框中没有的项。
上一页 下一页
7 组合框
1.组合框属性
组合框是文本框和列表框的组合, 拥有列表框
和文本框的大部分属性 。 组合框也有 SelStart、
SelLength和 SelText这三个文本框特有的属性 。
组合框的特有属性是 Style属性 。 该属性用于
确定组合框的类型和显示方式, 共有三个值:
0 —下拉式组合框, 由一个文本框和一个下拉
式列表框组成, 用户既可以在文本框中输入文本,
也可以从列表框中选择列表项, 这是系统默认值;
l — 简单组合框, 也由一个文本框和一个标准列
表框组成, 但列表框不是下拉的, 它始终显示在屏
幕上, 用户既可以在文本框中输人文本, 也可以从
列表框中选择列表项;
2 — 下拉式列表框, 它不允许用户输入文本, 只
能从下拉列表框中选择列表项 。
2.组合框的方法
在组合框中也可以通过在程序中使用
AddItem方法添加选择项;用 RemoveItem方法和
Clear方法删除选择项 。 其操作方法与列表框一样 。
3.组合框的事件
组合框的事件随 Style属性的值不同而有所不
同:
当 Style=0,下拉式列表框有 Click事件和
Change事件;
当 Style=1,简单组合框有 DblClick事件和
Change事件;
当 Style=2,下拉式列表框有 Click事件。
4.组合框的使用
例 li4-11点击此处进入
上一页 下一页
滚动条 (ScrollBar)分为水平滚动条 (HScrollBar)
和垂直滚动条( VScrollBar)两种。
1,滚动条的属性
★ Max和 Min属性,用于设定或表示当滑块处于
滚动条最大和最小位置时所代表的值。
★ SmallChange最小变动值属性,用于设定当
用户用鼠标单击滚动条两端箭头式,滑块移动的增
量值。
★ LargeChange最大变动值属性,用于设定当
用户用鼠标单击滚动条滚动箭头和滑块间区域时,
滑块移动的增量值。
★ Value值属性,表示滚动条内滑块当前所处位
置的值。
上一页 下一页
8 滚动条
2,滚动条方法
滚动条没有特有的方法。
3,滚动条事件
★ Scroll事件,当在滚动条内拖动滑块时引发
的事件。
语法, Sub HScroll_Scroll( )
Sub VScroll_Scroll( )
★ Change事件, 当滚动条的位置发生变化时引
发该事件。
语法,Sub HScroll_Change( )
Sub Scroll_Change( )
4,滚动条的使用
例 li4-12点击此处进入
上一页
下一页
9 计时器 (Timer)
时钟( Timer)控件是一种定时触发事件的控
件,它能有规律地以一定的时间间隔激发时钟事
件( Timer)而执行相应的程序代码。
1,计时器控件的属性
★ Enable属性,设定时钟是否有效。它是一个
逻辑值,其中:
True,使时钟控件有效,开始有效计时
False:停止时钟控件工作
★ Interval属性,用于设定时钟触发事件的间
隔,单位为毫秒,取值范围为 0—65535。
Interval的值为 0,则计时器无效
Interval的值受硬件能力限制,最小间隔为 56
毫秒
2.计时器控件的事件
计时器只支持 Timer事件。基本语法形式为:
Sub Timer_Timer([Index As Integer])
其中,Index是一个整数值 。 如果当前时钟控件是
一个控件数组, 则 Index表示该时钟控件在数组中
的下标, 否则就不需要这一参数 。
3.计时器控件的使用
时钟控件是一个非常有用的控件, 它的功能就
和它的名字一样, 主要用于在程序中监视和控制时
间进程 。
我们一般都是在设计阶段设置它的 Interval属
性, 然后当某一事件发生 ( 如一个按钮被按下等 )
时设置时钟控件的 Enabled为 True,这时, 时钟控
件开始计时, 当到达 Interval属性的值时, 就会触
发 Timer事件中编制的处理程序 。
例 li4-13点击此处进入 例 li4-14点击此处进入
驱动器列表框是一种下拉式列表框, 平时只显
示当前驱动器名称, 单击其右边的向下箭头, 就会
下拉出该计算机所拥有的所有磁盘驱动器, 供用户
选择 。
驱动器列表框有一个 Drive属性, 在运行时返
回或设置所选定的驱动器 。 Drive属性不能在设计
状态时设置, 只能在程序中被引用或设置 。 其形式
如下:
[ 对象, ] Drive [ =drive]
其中,对象 — 驱动器列表框名称 。
drive — 驱动器名称 。
注意,每 次重 新设 置 Drive属性都 会引 发
Change事件 。
上一页
下一页
10 驱动器列表框( DriveListBox)
11 目录列表框( DirListBox)
目录列表框显示当前驱动器的目录结构及当前
目录下的所有子目录, 供用户选择其中的某个目录
作为当前目录 。 在目录列表框中, 如果用鼠标双击
某个目录, 就会显示出该目录下的所有子目录 。
目录列表框只能显示出当前驱动器下的子目录 。
如果要显示其他驱动器下的目录结构, 则必须重新
设置目录列表框上的 Path属性 。
Path属性用来返回或设置当前路径, 不能在设
计状态时设置 。 它适用于目录列表框和文件列表框,
其形式如下,[ 对象 ], Path [=Pathname]
其中:对象 — 指目录列表框或文件列表框名称
pathname — 一个路径名字符串 。
注意:每次重新设置 Path属性都会引发 Change事件 。
12 文件列表框( FileListBox)
文件列表框显示当前驱动器中当前目录下的文
件目录清单 。 文件列表框也有 Path属性, 表示文件
列表框中显示的文件所在的路径 。 每次重新设置
Path属性都会引发, PathChange”事件 。
文件列表框的 Pattern属性 返回或设置文件列
表框所显示的文件类型 。 该属性值为具有通配符的
文件名字符串, 既可以在设计时设置, 也可以在程
序中改变 。 缺省值为, *.*”,显示所有文件 。 其形
式如下,[ 对象, ] Pattern[ =value]
其中,对象 — 指文件列表框名称 。
value — 一个文件名字符串 。
注意:每次重新设置 Pattern属性都会引发
,PatternChange”事件。
在窗体中加入驱动器、目录和文件列表
框控件,使三者同步显示。另外,加入一个文本
框,通过在文本框中输入文件类型,使文件列表
框中显示指定类型的文件 。
例 li4-15点击此处进入
返 回上一页 下一页
驱动器、目录和文件列表框控件的例子
一,ActiveX控件
所谓 ActiveX控件就是一段可以重复使用的编
程代码和数据,是由 ActiveX技术创建的一个或多
个对象所组成的,ActiveX控件文件的扩展名为
OCX,通常放在 Windows的 System目录下。
二,向工具箱中添加 ActiveX控件
1、方法一:, 工程, 菜单 →, 部件, →, 控
件,
方法二:在, 工具箱, 中击右键,选择
,部件,
2、找到所需的控件或对象,单击左边的复选
框选定。
三、举例
下一页
4.2 使用 ActiveX控件和
可插入对象
在窗体上建立进度条、标签、命令按钮和时钟控
件,单击, 开始, 按钮,进度条开始逐步前行,
在窗体上显示, 进度条开始运行,请稍候!, 信
息;进度条填满后,窗体显示, 进度条运行完毕,
信息。
添加进度条:, 工程, 菜单 →, 部件, →, 控件,
→, Microsoft Windows Common Controls 6.0”
上一页 下一页
对象 属性名 属性值
窗体 名称 FrmExp
Caption ActiveX举例
进度条 名称 PrgBar
标签 名称 LblDisp
Caption (空)
命令按钮 名称 CmdStart
Caption 开始
计时器 名称 TmrClock
Interval 100
事件过程代码:
Dim i As Integer
Private Sub Form_load( )
LblDisp.Visible = False
TmrClock.Enabled
=False
PrgBar.Value = 0
End Sub
上一页
下一页
Private Sub CmdStart_Click()
LblDisp.Visible = True
LblDisp.Caption = "进度条开始运行,请稍候! "
TmrClock.Enabled = True
End Sub
Private Sub TmrClock_Timer()
If i < 100 Then
i = i + 1
PrgBar.Value = I 例 li4-19单击此处进入
Else
i = 0
TmrClock.Enabled = False
LblDisp.Caption = " 进度条运行完毕 "
End If
End Sub 返 回上一页 下一页
4.4控件应用举例
例:在窗体中分别加入组合框, 水平滚动条和文
本框, 利用组合框设置文本框中的字体;利用水
平滚动条设置文本框中的字号 。 其中设置字体的
组合框为下拉式列表框 ( Style属性为 2,不能输
入 ) ;当用鼠标单击水平滚动条时, 在当前字号
值文本框中显示滚动条滑块当前的值并由该值设
置文本框中的字号 。
例 li4-17单击此处进入
4.4控件应用举例 (不讲)
例 1:此例将介绍列表框和组合框添加、删除控
件等事件,以及标签和命令按钮的使用。
创建窗体及控件
窗体及控件界面如图所示:
窗体及控件界面
各控件属性
Label1,Caption =,请输入职工姓名”
Label2,Caption =,请输入干部姓名”
Label3,Caption =,职工人数”
Label4,Caption =,干部人数”
Text1,text =,,
Text2,text =,,
?Text3,text =,,
?Text4,text =,,
?List1,text =,,
?Combo1,text =,,
?Command1,Caption =,添加职工,
?Command2,Caption =,删除职工,
?Command3,Caption =,添加干部,
?Command4,Caption =,删除干部,
设置属性后的窗体界面
?Private Sub Command1_Click()
? If Text1.Text <> "" Then
? List1.AddItem Text1.Text
? Text3.Text = Val(List1.ListCount)
? Text1.Text = ""
? End If
?End Sub
程序代码
?Private Sub Command2_Click()
? If List.ListCout > 0 Then
? List1.RemoveItem ListCount
? Text3.Text = Val(List1.ListCount)
? End If
?End Sub
?Private Sub Command3_Click()
? If Text2.Text <> "" Then
? Combo1.AddItem Text2.Text
? Text4.Text = Val(Combo1.ListCount)
? Text2.Text = ""
? End If
?End Sub
?Private Sub Command4_Click()
? If Combo1.ListCount > 0 Then
? Combo1.RemoveItem ListCout
? Text4.Text = Val(Combo1.ListCount)
? End If
?End Sub
运行创建的应用程序
?运行结果如图所示:
? 运行该程序, 在, 请输入职工姓名, 文
本框中输入职工姓名, 并单击, 添加职工,
按钮, 那么输入的姓名就添加到了列表框;
单击, 删除职工, 按钮, 则列表框中末位
职工姓名被删除 。, 请输入干部姓名, 也
类似以上操作 。, 职工人数,,, 干部人
数, 分别指出了当前列表框和组合框的人
数 。
例 2,设计一个显示时间和日期的小程序 。 在
窗体上放置三个标签, 一个文本框, 一个复选框,
两个框架 ( 并分别在其中放置一个组合框和两个
单选按钮 ), 两个命令按钮和一个计时器 。
?初始窗体中各控件属性设置值
? 对象 属性 设置值
? Form Name FrmTimeDisp
? Caption 计时秒表
? Label1 BackColor &H00FF0000&
? ForeColor &H0000FFFF&
? Label2 Caption 延续时间
? Label3 Caption 秒
? Text1 Name TxtTime
? Text 10
? CheckBox1 Name ChkDate
? Caption 显示日期
? Frame1 Name FraDateType
? Caption 日期格式 (&D)
? Frame2 Caption 时间格式 (&T)
? Timer1 Interval 1000
? ComboBox1 Name CboDateType
? List 年 /月 /日, 月 /日 /年,
? 日 /月 /年
? Style 2
? Option1 Name OptTimeType
? Caption 24小时制
? Index 0
? Option2 Name OptTimeType
? Caption 12小时制
? Index 1
? Command1 Name CmdStart
? Caption 开始计时
? Default True
? Command2 Name CmdEnd
? Caption 退出
各控件事件处理程序代码:
?在窗体的通用声明中写入变量和数组的定义
Dim DateType(3) As String
Dim TimeType(2) As String
Dim Seconds As Integer
?当选中显示日期复选框时, 时间格式框架才成
为可见
Private Sub ChkDate_Click()
fraDateType.Visible =( chkDate.Value=1)
End Sub
ˊ 在窗体的, Form_Load”事件中初始化各变量,
数组及窗体的显示状态
Private Sub Form_Load()
chkDate.Value = 1
cboDateType.ListIndex = 0
optTimeType(0).Value = True
DateType$(0) = "yy年 mm月 dd日 "
DateType$(1) = "mm月 dd日 yy年 "
DateType$(2) = "dd日 mm月 yy年 "
TimeType$(0) = ""
TimeType$(1) = "ampm“
End Sub
ˊ cmdStart事件处理程序
Private Sub cmdStart_Click( )
Seconds% = txtTime.Text
CmdStart.Enabled = False
Timer1.Enabled = True
End Sub
ˊ cmdEnd事件处理程序
Private Sub cmdEnd_Click( )
Unload Me
End Sub
ˊ 计时器控件事件处理程序
Private Sub Timerl_Timer( )
Dim i,j As Integer
Dim dateStr $
Seconds = Seconds - l
i = cboDateType.ListIndex
If optTimeType (0).Value = True Then
j = 0
Else
j = 1
End If
If chkDate.Value = 0 Then
DateStr $ = ""
Else
DateStr $ = DateType $(i)
End If
Label1.Caption = Format(Now,dateStr $ +
"hh:mm:ss" + TimeType $ (j) )
If Seconds = 0 Then
Timer1.Enabled = False
CmdStart.Enabled= True
Label1.Caption = ""
End If
End Sub
窗体和控件是 VB作为可视化编程
的重要工具,在这一章中介绍窗体及
常用控件,如:标签、文本框、列表
框、组合框、命令按钮、单选按钮、
检查框、框架、滚动条、时钟等基本
控件的使用。本章的内容如下:
4.1 窗体设计
4.2 基本控件
4.3 使用 ActiveX 控件和可插入对象
4.4 控件应用举例
4.1 窗体设计
返 回
窗体对象是开发 VB程序的一个基本平
台,绝大多数控件都要添加在窗体上。在本节
中集中介绍窗体的属性、方法、事件以及窗体
的工作过程。
一、窗体的属性、事件和方法
1、窗体的属性
设置窗体的属性有两种方法:
☆ 在程序设计时手工在, 属性, 窗口
中设置;
☆ 在程序代码中设置,在程序运行时
实现。
窗体的属性不仅影响
窗体的外观,还控制着窗
体的位置、大小和行为等。
窗体的属性很多,常用的
窗体属性有:
下一页上一页
Caption属性
该属性决定窗体标题栏
中显示的文本。
MaxButton属性
决定窗体是否能最大化。
它是一个逻辑值。当属
性为 True时,窗体右上
角有最大化按钮。
上一页 下一页
MinButton属性
决定窗体是否能最小化。它是一个逻辑值。
当属性为 True时,窗体右上角有最小化按钮。
ControlBox属性
决定窗体标题拦中是否有控制菜单框,它也是
一个逻辑值。当属性为 True时,窗体左上角有控
制菜单框。
Moveable属性
Borderstyle边框风格属性
该属性决定窗体是否可移动,它是一个逻辑值,
当属性为 True时,表示窗体可以移动。
该属性用来设置窗体的大小及边框的样式,有 4
种情况:
0 — None:窗口无边框
2 — Fixed Single:窗口为单线边框,大小不能改变
3 — Sizable:窗口为双线边框,可以改变窗口大小
4 — Fixed Double:窗口有双线框架,不能改变大小
Icon属性
设置窗体最小化时显示的图标。 VB中的图标文
件存放在 Graphics\Icons下的子目录中。
MDIChild属性
该属性用来设置 MDI子窗体,它是一个逻辑值,
当属性为 True 时,表示该窗体是 MDI子窗体。
WindowState属性
该属性决定了窗体执行时的显示状态,有 3个取值:
0 — 正常窗口状态,有窗口边界。
ShowInTaskerbar属性
AutoRedraw属性
1 — 最小化状态,以图标方式运行。
2 — 最大化状态,无边框,充满整个屏幕。
该属性决定一个窗体对象是否出现在 Windows任
务栏中,它是一个逻辑值,为 True时表示窗体在任
务栏中。该属性值在运行时为只读状态。
该属性控制窗体图像的重建 。 它是一个逻辑值,
当属性为 True时, 在其他窗口覆盖某窗体后, 又
返回该窗体时, VB将自动刷新或者重画该窗体的
所有图形, 否则必须调用一个事件过程来执行这
项任务 。 也就是说, 只有当 AutoRedraw设置为
True时才能重画如 Circle,Cls,Point和 Print等方
法的输出 。
2、窗体的事件
窗体最常用的事件有 Load, Activate,
Deactivate,Click和 DblClick 。 这里只介绍前
3个事件 。 窗体的 Click和 DblClick事件与控件
的相应事件相同, 后面再作介绍 。
下一页上一页
Load事件
当一个窗体被装入工作区
时触发的事件 。 该事件通
常用来在启动应用程序时
对属性和变量进行初始化 。
Activate事件
当一个窗体成为活动窗口时所触发的事件 。 用户单
击某个窗体, 或在程序代码中用 Show方法显示窗
体, 或用 SetFocus把焦点设置在某窗体上都使该窗
体成为活动窗口, 此时触发 Activate事件 。 该事件
对初始化窗体行为十分方便 。
Deactivate事件
当另一个窗体或应用程序被激活时, 该窗体就
会产生一个 Deactivate的事件 。 该事件对结束窗
体行为十分方便, 例如, 在 Deactivate事件中,
可以把对该窗体操作所做的更改保存到文件或数
据库中 。
3、窗体的方法
窗体的方法有多种,他们可以调用文本和图形,
在窗体表面上输出、写或画,这样的方法有 Print、
Line,Circle,Cls等。对这类方法我们不过多介绍,
我们主要介绍一些对窗体的行为产生影响的方法。
Show方法
Show方法可以使一个窗体可见, 使用格式如下:
对象,Show
其中, 对象是窗体的名称 。 调用 Show方法与设置
窗体 Visible属性为 True具有相同效果 。
调用窗体的 Hide方法, 能够隐藏一个窗体 。 当一
个窗体调用 Hide方法后, 该窗体就从屏幕上被删除,
并且它的 Visible属性被设置为 False。 调用的格式
如下,对象,Hide
Hide方法
Refresh方法
该方法用于对窗体刷新 。 当用户对窗体操作后,
调用 Refresh方法, 可以刷新窗体, 使窗体显示最
新的内容 。 调用 Refresh方法的格式如下:
对象,Refresh
例 li4-1-2点击此处进入
返 回上一页 下一页
二、向窗体上添加控件
1、生成控件及调节控件大小和位置:
单击工具箱中按钮 在窗体上拖动
利用调节柄改变大小
在控件中央拖动鼠标
2、使用网格
工具菜单 选项 通用 显示网格
3、多个控件的生成及操作
双击某个工具按钮生成多个相同控件
① 多个控件的选中
②控件的迭放层次
③多个控件的编辑
④窗体编辑器的使用 视图 工具栏 窗体编辑器
4、控件数组
☆ 控件数组的定义
控件数组是由一组相同类型的控件组成,它们公
用一个控件名,具有相同的属性。当建立控件数组时,
系统给每个元素赋一个唯一的索引号( Index),通过属
性窗口的 Index属性,可以知道该控件的下标是多少,控
件数组的第一个下标是 0。
控件数组适合若干个控件执行的操作相似的场合,
控件数组共享同样的事件过程。
☆ 控件数组的建立
① 在设计时建立,步骤为:
? 在窗体上画出某个控件,可以进行控件名的
属性设置,这是建立的第一个元素;
? 选中该控件,进行 copy和 paste操作,系统
会提示:
“已有了命名的控件,是否要建立控件数组,
单击 Yes按钮后,就建立了一个控件数组元素,进行若干次
Paste操作,就建立了所需要的控件数组;
? 进行事件过程的编程。
② 运行时添加控件数组,步骤为:
? 在窗体上画出某控件,设置该空间的 Index属
性值为 0,表示该控件为数组;这是建立的第一个元素;
? 在编程时通过 Load方法添加其余的若干个元
素,也可以通过 Unload方法删除某个元素;
? 每个新添加的控件数组通过 Left和 Top属性,
确定其在窗体中的位置,并将 Visible属性设置为 True。
例 li4-0,建立含有 4个命令按钮的控件数组,当单击某个按钮
时,分别显示不同的图形或结束。
例 li4-0-1,建立一个类似国际象棋的棋盘。要求:
设计时在窗体上放一个 Label控件,其 Index属性为 0,
BackColor属性为黑色。程序运行时产生 64个 Label控件数组
元素,BackColor黑白交替。
三、设置启动窗体
1、设置启动窗体
?从“工程”菜单中选取“工程属性”命令,打开“工
程属性”对话框
? 在显示的“工程属性”对话框中,选取“通用”选
项卡
?在“启动对象”列表框中,选取要作为新启动窗
体的窗体
2、不使用启动窗体开始程序的运行
返 回上一页 下一页
1、创建状态(窗体的创建)
Initialize事件是窗体创建状态开始的标志。因而,放
在 Form_ Initialize( )事件过程中的代码,就是窗体创建
时最先执行的代码。处于这种状态时,窗体是作为一个
对象而存在,但还没有窗口,而且它的控件也不存在,
也就是说在这个状态下,只有窗体的代码部分在内存中,
而窗体的可视部分还没有调入。虽然该状态可能很短暂,
但任何窗体都要经过这个状态。
上一页 下一页
四、窗体的生命周期
窗体在整个
存活期中有
四种状态,
创建状态
加载状态
可见状态
卸载状态
2、加载状态(加载窗体)
▲ Load事件是加载状态的开始
▲ 加载窗体则 Form_Load()事件过程中的代码开始执行
▲窗体如果满足以下任一条件即可自动加载
①该窗体在“工程属性”对话框的“通用”选项卡中
被指定为启动对象
②窗体中首先被调用的属性或方法是 Show方法,例
如,Form1.Show
③ 首先被调用的属性或方法是窗体内置的成员,例如:
调用了窗体的 Move方法或使用了窗体中某个控件的属性。
④用 Load语句加载窗体 如,Load Form2
在上面所列的①、②两种情况下,一旦 Form_Load( )事
件执行完毕,窗体就直接可见。而对于后面的两种情况,窗
体将保持加载状态,但不显示。
返 回上一页 下一页
3、可见状态
在加载窗体后, 使用窗体的 Show方法, 可以使窗体进
入可见状态 。 一旦窗体可见, 用户就能和它交互作用 。
( 1) 显示窗体,要使一个窗体可见, 应调用 Show方法 。
Forml.Show
( 2) 隐藏一个窗体, 应调用窗体的 Hide方法 。 当一个窗
体调用 Hide方法后, 该窗体就从屏幕上被删除, 并且它的
Visible属性被设置为 False,窗体返回加载状态 。 用户将无
法访问隐藏窗体上的控件, 但是对于运行中的 VB应用程
序, 隐藏窗体的控件仍然是可用的 。 在程序中, 要判断一
个窗体是否处于可见状态, 可以使用它的 Visible属性, 例
如:
If Form2.Visible Then
Form2.Hide ˊ 如果处于可见状态则隐藏之
Else
Form2.Show ˊ 如果窗体被隐藏则显示之
End if
4、卸载状态(窗体的卸载)
窗体在卸载时可以是隐藏的, 也可以是可见的 。 若没隐藏,
则它将保持可见直到卸载完毕, 内存和资源完全收回 。
▲ QueryUnload在任一窗体卸载前在所有窗体中发生,
提供了停止窗体卸载的机会 。 如果某些数据希望保存, 则
此时将提示保存或忽略所做的更改 。
▲ Unload在每个窗体卸载时发生。
结束应用程序
Unload Me ?当只有一个窗体时结束应用程序
End ?立即强行结束应用程序
一,VB中的控件
二、基本控件的常用属性
返 回上一页 下一页
4.2 基本控件
三、设置 Tab键的顺序
四、控件默认属性
五、常用控件
1、内部控件
内部控件就是在工具箱中默认出现的控件, 如命令按
钮, 标签, 文本框等, 这些控件在 VB的可执行文件中, 因
此也称为 VB的基本控件 。 内部控件总是出现在工具箱中,
不能从工具箱中删除 。
2,ActiveX控件
扩展名为,ocx的独立文件,包括各种版本 VB提供的控
件和仅在专业版和企业版中提供的控件,另外还有许多第
三方提供的 ActiveX控件。
3、可插入的对象
有些对象能够添加到工具箱中, 例如一个 Excel工作
表, 这时可以把它们当作控件使用, 这样的对象称可插入
对象 。 其中一些对象还支持 OLE自动化, 使用这种控件就
可以在 VB应用程序中编程控制另一个应用程序的对象 。
上一页 返 回下一页
一,VB中的控件
学习 VB,很大程度上是在学习各种控
件的属性和设置,每一个控件都有自己的属性,
如名称( Name)、是否可见( Visible)等。
控件的属性可以在设计时通过 属性窗口设置,
也可以在编程时通过 代码窗口改变 。需要注意
的是,不同的控件有许多相同的属性, 也有许
多不同的属性,例如,文本框就没有 Caption
属性。
控件与窗体一样,也具有属性、方法和事
件,控件常用属性如下:
上一页 下一页
二、基本控件的常用属性
◆ 外观
Caption(标题)属性,控件上显示的内容
ForeColor(前景颜色)属性,控件的正文颜色
BackColor(背景颜色)属性,正文以外显示区域颜色
BackStyle(背景风格)属性,0—Transparent 透明显示
1—Opaque不透明
AutoSize属性,决定控件是否自动调整大小
True — 自动调整大小
False — 保持原设计大小,正文过长自动裁减◆ 位置
Height,Width属性,决定控件的高度和宽度
Top属性,控件(或窗体)到窗体(或屏幕)顶部距离
Left属性,控件(或窗体)到窗体(或屏幕)左边距离
Alignment属性,决定控件内的对齐方式
0—Left Justify:正文左对齐
1—Right Justify:正文右对齐
2—Center:正文居中
◆ 行为
Enabled属性,决定控件是否允许操作
True—允许用户操作,并对操作作出响应
False—禁止用户进行操作,呈暗淡色
Visible属性,决定控件是否可见
True—程序运行时控件可见
False—程序运行时控件隐藏
TabIndex属性,决定按 Tab键时焦点在各控件移动顺序
上一页 下一页
◆ 杂项
Name(名称)属性,对象的标识、不显示在窗体上
WordWarp属性,在水平或垂直方向上改变显示区域 大小
True—表示按文本和字体大小在垂直方向上改变
显示区域的大小,而在水平方向上不发生变化
False—表示在水平方向上按正文长度放大和缩小;
在垂直方向上以字体大小来放大或缩小显示区域
字体 Font
Font属性改变文本的外观, 其中:
FontName属性 — 字符型, 决定了控件上正文的
字体 。
FontSize属性 — 整型, 决定了控件上正文的字体
大小 。
FontBold属性 — 逻辑型, 表示控件上正文是否
是粗体 。
FontItalic属性 — 逻辑型, 表示控件上正文是否
是斜体 。
FontStrikethru属性 — 逻辑型, 表示控件上正文
是否加删除线 。
FontUnderline属性 — 逻辑型, 表示控件上正文
是否带下划线 。
1、焦点的概念
☆ 焦点是接收用户鼠标或键盘输入的能力。
☆ 当对象具有焦点时,可接收用户的输入。在 Windows
下同时运行的多个应用程序中,只有具有焦点的应用程序
有活动标题栏,才能接受用户输入。
☆ 在 VB窗体中,只有具有焦点的文本框才接收和显示
由键盘输入的文本内容。
☆ 大部分控件可以接收焦点, 但有些控件不能接收焦点,
如 Frame,Label,Menu,Line,Shape,Image和 Timer等 。
☆ 对象是否具有焦点是可以看出来的 。 例如, 当命令按
钮具有焦点时, 标题周围的边框将突出显示 。
☆ 只有当对象的 Enabled和 Visible属性为 True时, 它才
能接收焦点 。
上一页 返 回下一页
三、设置 Tab键的顺序
2,Tab键顺序
☆ 所谓 Tab顺序,就是按 Tab键时焦点在各个控件上移动
的顺序。当有多个控件时,Tab顺序与控件建立的顺序相
同。
☆ 设置控件的 TabIndex属性可以改变 Tab顺序。 因为顺
序编号从 0开始,TabIndex的最大值总是比 Tab键顺序中
控件的数目少 l。即使 TabIndex属性值高于控件数目,VB
也会将这个值转换为控件数减 1。
☆ 不能获得焦点的控件, 以及无效的和不可见的控件, 仍
具有 TabIndex属性, 即这些控件也包含在 Tab顺序中, 但
在按 Tab键时, 这些控件将被跳过 。
☆ 对于能获得焦点且有效的控件, 如果不希望按 Tab键时
能选中该控件, 则可以将该控件的 TabStop属性设为 False,
这样便可将此控件从 Tab顺序中删除 。
VB中把某个控件的最重要属性称为该控件属性的值或默
认属性。
对于默认属性,在程序运行时可以直接改变控件的
值而不必指定该控件的哪个属性。
部分控件的默认属性
控件 值 控件 值
文本框 Text 标签 Caption
命令按钮 Caption 图形图像框 Picture
单选按钮 Value 检查框 Value
上一页 返 回下一页
四、控件默认属性
五、常用控件
1、命令按钮、标签和文本框
2、单选钮、检查框和框架
3、列表框和组合框
4、滚动条
5、计时器
6、驱动器、目录和文件列表框
上一页 返 回下一页
上一页
下一页
命令按钮、标签和文本框
☆ 命令按钮是 Windows应用程序中最常用的控
件, 用于完成某种功能, 主要接收 Click事件,
当用户单击它时将引发相应的事件过程 。
☆ 在工具箱中, 它是一个带有凸起圆角矩形
图案的按钮 。
☆ 在程序运行时, 常用以下方法选中命令按
钮:
( l) 用鼠标单击 。
( 2) 按 Tab键将焦点移到相应按钮上, 再按
回车键 。
( 3) 按快捷键 ( Alt十有下划线的字母 ),
设置快捷键的方法见下面的 Caption属性介绍
1 命令按钮
(1) 命令按钮的属性
★ Caption属性:
▲ Caption属性用于设定命令按钮的标题,即命
令按钮上将显示的文字。
▲ 在 Caption属性设置时,如果某个字母前加入
,&,,则程序运行时标题中的该字母带有下划线,该
带有下划线的字母就成为快捷键。
★ Default属性:
▲ 只有命令按钮有 Default属性。
▲ 该属性是逻辑型的,用于设定该命令按钮是
否为默认按钮,当 Default属性值为 True时,按 Enter
键相当于用鼠标器单击了该按钮。
▲ 在一个窗体中只能有一个按钮的 Default属
性设为 True。即在一个窗体上只能有一个命令按钮为默
认按钮。
★ Cancel属性:
▲ Cancel属性是命令按钮独有的,
▲ 当 Cancel属性值为 True时,按 Esc键相当
于用鼠标器单击了该按钮。
▲ 在一个窗体中只能有一个按钮的 Cancel属
性设为 True。即在一个窗体上只能有一个命令按钮
为 Cancle按钮。
★ Value属性:
▲ 该属性在设计阶段无效,只能在程序运行
期间设置或引用,它是逻辑型的,用于检查该按钮
是否被按下。 True表示该按钮被按下,False(缺
省)表示按钮末被按下。在程序运行过程中,只要
Value值为 True,便引发按钮的 Click事件转去执行
相应的程序。
★ Style属性:
设定命令按钮的类别,有 0,1两个取值。
0 — 表示按钮为标准按钮,按钮上不能显示图
形,这是缺省值。
1 — 表示按钮为图形按钮,这时会在 Caption
文本上方显示由 Picture属性指定的图形。
注,若在 Picture图片属性中选择了图片文件,
则 Style属性值必须为 1,否则无法显示图形。
★ Picture属性:
用于设定命令按钮上显示的图形,可以在设计阶
段单击其后的省略号按钮选择一个文件(以,bmp
和,Ico为扩展名的图片文件),也可以在代码中设
置。只有当命令按钮的 Style属性设为 1时,才会在
命令按钮上显示图形。
★ ToolTipText属性:
用于设定图形的提示文字,与 Picture图片属性同时
使用。
( 2)命令按钮的 方法和事件
▲ 命令按钮没有特殊的方法和事件,它最
重要的事件就是 Click事件,而且几乎所有的
Windows应用程序都是使用它的 Click事件。
▲ 注意:它没有 DblClick事件。
( 3)命令按钮的使用
命令按钮是最常用的启动控件,在程序中主
要使用它的 Caption属性作为命令按钮的说明,而
在它的 Click事件中写人相应的程序代码。
上一页 下一页
例:利用命令按钮控制改变信号灯的显示。
例 4-3点击此处进入
(1)标签控件的常用特有属性
★ Alignment属性,
设定标签中文本的对齐方式。有三个可选项:
0 — 表示左对齐,为系统默认值;
1 — 表示右对齐;
2 — 表示居中。
★ Autosize属性,
用于设定标签的大小是否自动调整。共有两个选
项,True — 表示自动调整大小
False — 表示不自动调整大小,默认为 False。
上一页 下一页
2 标签控件( Label)
标签主要用来显示(输出)文本信息,但是不能
作为输入信息的界面,也就是说,标签控件的内容只
能用 Caption属性来设置或修改,而不能直接编辑。
★ BackStyle属性,
用于设定标签的背景模式。共有两个选项:
0 — 标签重叠显示在背景上,不覆盖原来的背景;
l — 显示标签时将背景覆盖掉,此为系统默认值。
★ BorderStyle属性:
用于设定标签的边框形式。共有两个设置值:
0 — 无边框,默认状态
l — 单线框,具体的边框显示样式,还要看
Appearance的设置。当 Appearance为平面时,边框为
单直线形的;当 Appearance为三维时,边框为凹陷形
的。
★ Caption属性:
用于设定标签上显示的文本内容。
★ Index属性,
若当前标签控件属性为控件数组,用 Index属性设定它
在这一数组中的下标。
★ WordWrap属性,
用来设定标签中的文本在显示时是否自动换行。共有 2
个选项:
True — 有自动折行功能
False — 没有折行功能,这时若标签内容太多,一
行显示不下,就会被截断。默认值为 False。
( 2)标签的方法
标签的常用方法只有 Move,格式如下:
Move left,top,width,height
其中 left,top,width,height分别表示移动目的位
置的坐标和大小 。 left为必要参数, 其他三个为可选参
数 。
上一页 下一页
( 3)标签的事件
一般很少使用标签事件, 但有时为了特殊需要,
也会用到以下几种标签事件:
★ Change事件,
当标签的内容被修改时产生该事件。标签内容的修改是
由更改 caption属性引起的。基本语法为:
Sub Label_Change([Index As Integer])
★ Click事件,
鼠标单击产生 Click事件。其事件处理过程的基本语法
是:
Sub Label_Click([Index As Integer])
★ DblClick事件,
鼠标双击产生 DblClick事件。基本语法为:
Sub Label_DblClick([Index As Integer])
其中, 参数 Index是一个整数值 。 若当前标签是一个控
件数组, 则 Index表示该标签在数组中的下标, 否则就
不需要这一参数 。
◆ (不讲 )开发一个加法计算器应用程序。其中,
,被加数,,, 加数, 以及, 和数, 称为标签
( Label),相应的三个输入输出数据框称为文本框
( TextBox),此外还有三个命令按钮
( CommandButton)。用户可以在被加数和加数相应的
文本框内输入数据,再单击, 加法, 按钮,便能在
,和数, 对应的框中看到相加的结果。当用户单击
,清除, 按钮时,就会清除各文本框中的数据。当用
户单击, 关闭, 按钮时就会关闭该窗口并退出应用程
序。在文本框中输入数据时,用户可以进行一般的插
入、修改和删除操作。
( 4)标签举例
◆ 例 4-4点击此处进入
对象 属性名 属性值
窗体 (名称) frmAdder
Caption 加法计算器
标签 1 Caption 被加数
标签 2 Caption 加数
标签 3 Caption 和数
文本框 1 (名称) txt1
Caption (空)
文本框 2 (名称 ) txt2
Caption (空)
文本框 3 (名称) txt3
Caption (空)
按钮 1 (名称 ) cmdAdd
Caption 加法
按钮 2 (名称) cmdClear
Caption 清除
按钮 3 (名称) cmdClose
Caption 关闭
上一页
下一页
本例中各个对象、有关的属性名以及需要设置
的属性值设计如下表
Private Sub cmdAdd_Click()
txt3.text=Str$(Val(txt1.Text)+Val(txt2.Text))
End Sub
Private Sub cmdClear_Click()
txt1.Text=""
txt2.Text=""
txt3.Text=""
End Sub
Private Sub cmdClose_Click()
End
End Sub
注:由于文本框中的 Text属性的值是字符串类型的,所以
不能将两个文本框中的字符串直接进行加法运算,需要先
用 Val函数将代表数值的字符串转换成双精度实数,才能
进行数值运算。数值变量的运算结果还是数值型的,需要
用 Str$函数将其转换成字符串后,才能赋给文本框的 text
属性。
返 回
文本框又称编辑框, 是最常用的文本输入输出控件,
该区域可以输入, 编辑, 修改和显示正文内容 。
( 1)文本框的属性
文本框没有 Caption属性 。 下面主要介绍它的
一些特殊的属性 。
★ Text属性:
用于设置或取得文本框中显示的文本,是文本框的默认
属性。在程序中使用这一属性取得当前文本框中的文本,
即在程序执行时,用户通过键盘输入的正文内容,VB会
自动将其保存在 Text属性中。
★ MaxLength属性:
用于设定文本框中能够容纳的最多字符数。
0—表示可容纳任意多个输入字符,默认值。
正整数 —表示该数值为可容纳的最多字符数。
上一页 下一页
3 文本框( TextBox)
★ MultiLine多行属性:
用于设定文本框中是否允许显示和输入多行文本。
True — 表示允许显示和输入多行文本。
False — 表示不允许显示和输入多行文本。
★ ScrollBars属性:
用于设置文本框中是否带有滚动条。当 MultiLine属
性为 True时,ScrollBars属性才有效,因此这一属
性一般要和 Multiline属性协调使用。
0—None:无滚动条
1—Horizontal:加水平滚动条
2— Vertical:加垂直滚动条
3—Both:同时加水平和垂直滚动条
★ HideSelection隐藏选定属性:
用于设定焦点不在该文本框中时,所选定的文本是
否仍反白显示。它是逻辑值,True表示要隐藏选定
文本,即当焦点不在当前编辑框中时,所选定的文
本不再反白显示; False则相反。
★ PasswordChar口令字符属性:
用于设定文本框是否用于输入口令类文本。当把这
一属性设定为一个非空字符串时(如常用, *” ),
运行程序时用户输入的文本就会只显示这一非空字
符,但系统接收的却是用户输入的文本。系统默认
为空字符,这时,用户在程序运行中输入的可显示
文本将直接显示在文本框中。
★ ReadOnly只读属性:
用于设定程序运行是能否对文本框中的文本进行编
辑。这是一个逻辑型的属性,默认值为 False,表示
运行程序时可以编辑其中的文本;当选择 True时,
表示运行程序时不能编辑其中的文本。
上一页 下一页
★ TabStop属性:
用于设定运行时用户能否用 Tab键跳入该文本框。当选
择 True时,表示可以跳入;当选择 False时表示不能跳
入,如果这时要进入这一编辑框,可用鼠标单击这一
编辑框。
★ Locked属性:
指定文本控件是否可被编辑。默认值为 False,表示可
编辑,当设置为 True时,文本控件相当于标签的作用。
★ SelStart,SelLength和 SelText属性:
在程序运行中,对文本内容进行选择操作时,这三个
属性用来表示用户选定的正文:
SelStart — 选定的正文的开始位置,第一
个字符的位置是 0
SelLength — 选定的正文长度。
SelText — 选定的正文内容。
上一页 下一页
( 2)文本框的方法
文本框最有用的方法是 SetFocus,该方法是把光标移
到指定的文本框中 。 当在窗体上建立了多个文本框后,
可以用该方法把光标置于所需要的文本框上 。 它的格式
是:
[ 对象, ] SetFocus
激活文本框的方法有:
★ 按 Tab键或用鼠标单击文本框
★ SetFocus方法:把光标移到指定的文本框中。
( 3)文本框的事件
★ Change事件:
当用户输入新内容或当程序将 Text属性设置为新值,
从而改变文本框的 Text属性时会引发该事件 。 当用户键
入一个字符时, 就会引发一次 Change事件 。 例如用户键
入 Visual Basic一词时, 会引发 12次 Change事件 。
★ KeyPress事件
当用户按下并且释放键盘上的一个键时, 就会引发焦
点所在控件的 KeyPress事件, 此事件会返回一个
KeyASCII参数到该事件过程中 。
例如, 当用户键入字符, a”时, 返回 KeyASCII的值为
97,通过 Chr( KeyAscII) 可以将 ASCII码转换为字符
,a”。
★ GotFocus事件:
当光标转到文本框中时发生, 最常用的处理是对文本
内容的选定 。 通常情况下, 能引发 GotFocus事件的情
况是:
l) 用户按 Tab键, 跳转到该文本框中;
2) 用户用鼠标单击文本框;
3) 用户在程序代码中用 SetFocus方法激活了该
文本框 。
GotFocus事件过程的基本语法是:
Sub Text_GotFocus([ Index As Integer])
★ LostFocus事件:
当光标离开文本框中时发生,主要用来对数据更新进
行验证和确认。
可能引发 LostFocus事件的情况是:
◆ 用户按 Tab键, 跳出该编辑框;
◆ 用户用鼠标单击其他控件;
◆ 用户在程序代码中用 SetFocus方法激活了其
他控件 。
LostFocus事件过程的基本语法是:
Sub Text_LostFocus([ Index As Integer])
( 4)文本框的使用 例 lx4-5点此进入
例 lx4-4-2此进入 例 lx4-3点击此处进入
例 lx4-7点此进入 (先输正确的,再输错误的 )
上一页 下一页
( 1)单选按钮和复选框的区别
单选按钮( OptionButton)的左边有一个 ○ 。单
选按钮必须成组出现,用户在一组单选按钮中必须并且
最多只能选择一项。当某一项被选定后,其左边的圆圈
中出现一个黑点 ?。单选按钮主要用于在多种功能中由
用户选择一种的情况 。
复选框( CheckBox又称检查框)的左边有一个 □,
复选框列出可供用户选择的选项,用户根据需要选定其
中的一项或多项。当某一项被选中后,其左边的方框就
变成 ?。复选框主要用 于对某种或几种状态进行开关选
择。
上一页
4 单选按钮 复选按钮
( 2)单选钮和检查框的属性
★ Caption 属性,
设置单选按钮或检查框的文本注释内容,即单选按钮
或检查框边上的文本标题。
★ Alignment属性,
用于设定单选按钮或检查框标题的位置。
0 — 表示控件按钮在左,标题在右。
1 — 表示控件按钮在右,标题在左。
★ Value属性:
用于设定或检查单选按钮或检查框是否为选定状态。
对于单选按钮,当为 True时表示单选按钮被选定,
当为 False时表示未被选定,系统默认值为 False。
对于检查框,它有三个值供选择使用,
0 — Unchecked:表示检查框未被选定,此为
系统默认值;
l — Checked:表示检查框被选定;
2 — Grayed:表示检查框不可使用,即禁止用
户选择,此时检查框变成灰色。
★ Style属性:
指定单选钮或检查框的显示方式, 用于改善单选钮
或检查框的视觉效果 。
0—Standard:标准方式 。
1—Graphical:图形方式 。
( 3) 单选钮和检查框的事件
单选按钮和复选框都能接收 Click事件, 但一般不需
要编写 Click事件过程 。 因为当用户单击单选按钮或
复选框时, 他们自动改变状态 。
( 4)单选钮和检查框的 方法
单选按钮和复选框的常用方法是 SetFocus,其功
能和文本框相同。
例 li4-7点此进入
上一页 下一页
由于单选按钮的特点是当选定其中的一个
时,其余会自动关闭。所以,当需要在 同一个窗体
中建立几组相互独立的单选按钮 时,就需要用框架
( Frame)将每一组单选按钮框起来,这样在一个
框架内的单选按钮为一组,对他们的操作不会影响
框架外的单选按钮。
5 框架
( 1)框架( Frame)的属性
★ Caption 属性,
用于设定框架的标题名称。若为空字符,则框架为封
闭的矩形框,但与矩形框起来的控件不同的是框架的
标题可以有快捷字母。
★ Enable属性,用于设定框架是否为活动状态。
★ Visible属性,用于设定框架及其包含的控件是否
可见。
在窗体上创建框架的步骤:
★ 必须先建立框架, 然后在其中建立各种控件 。
★ 先单击工具箱上的工具, 然后在框架中适当位置拖拉出
适当大小的控件 。
★ 如果要用框架将现有控件分组, 则可先选定所有控件,
将它们剪切 ( Ctrl+ X) 到剪贴板, 然后选定框架并将剪贴
板上的控件粘贴 ( Ctrl+ V) 到框架上 。
( 2) 框架的事件
框架可以响应 Click和 DblClick事件 。 但是, 在应
用程序中一般不需要编写有关框架的事件过程 。
( 3)框架的用法
上一页 下一页
要求:窗体中建立两组单选按钮,分别放在名
称为, 字体, 和, 大小, 的框架中。在文本框中
可输入多行汉字。利用字号框和风格框内的控件
可以改变文本框中文字的字号和风格。
例 li4-8点击此处进入
上一页 下一页
列表框( ListBox)通过显示多个选择项,供
用户选择其中的项,达到与用户对话的目的 。如
果有较多的选项而不能一次全部显示时,VB会自动
加上滚动条。
列表框最主要的特点是 只能从其中选择, 而
不能直接写入或修改其中的内容 。
使用列表框输入数据是保证数据标准化的重
要手段, 它是一个重要的输入控件 。
6 列表框
1,列表框的属性
★ ListIndex属性,表示执行时选中的列表项序
号,从 0开始,若未选中任何项,ListIndex的值为 -
1。
★ ListCount属性,表示列表框中项目的数量。
ListCount-1表示最后一项的序号。 该属性只能在程
序中设置或引用。 ★ List属性,该属性是一个
字符型数组,存放列表框的
选项,list数组的下标是从
0开始的。例如,list(0)
的值是, 马明, 。该属性在
设计状态和程序中都可以设
置。
★ Selected属性,用于判断列表项是否被选中,
是一个逻辑数组。如,List.Selected(0)=True
表示第一项被选中。该属性只能在程序中设置或
引用。
★ Text属性,表示被选中列表项的文本内容。该
属性是默认属性,只能在程序中设置或引用。
在上表中,如果选定, 吴海燕,,则 text属性
值为, 吴海燕,
★ MultiSelect属性,用于设定列表框内是否允许
同时选择多个列表项。有 3种方式:
0 — None:禁止多项选择
1 — Simple:简单多项选择。鼠标单击或按
空格键表示选定 /取消一个已经选定的选择项。
3 — Extended:扩展多项选择。按住 Ctrl键,
同时用鼠标单击或按空格键表示选定 /取消一个已
经选定的选择项;按住 Shift键,同时单击鼠标或
移动光标键,就可以从前一个选定的项扩展到当
前选择项,即选定多个连续项。
上一页 下一页
2,列表框的方法
列表框中的选择项可以简单地在设计状态通过
List属性设置,也可以在程序中用 AddItem方法来
填写,用 RemoveItem或 Clear方法删除。
★ AddItem方法,把一个选项加入列表框 。
格式,对象,AddItem item [,Index]
其中,item是将要加入列表框的选项。必须是字
符串表达式。
Index决定新增项目在列表框或组合框中的
位置。如果 index省略,则添加的列表项将放在最
后。
★ RemoveItem方法,用于删除列表框中的列表项。
格式,对象,RemoveItem Index
其中 Index是被删除项目在列表框中的位置 。
★ Clear方法,用于清除列表项中的所有内容。
格式,对象,Clear
上一页
下一页
3,列表框的事件
列表框常用的事件就是 Click,DblClick、
GotFocus,LostFocus等大多数控件通用的事件
4,列表框的使用
列表框控件显示一个项目列表,让用户从其中选
择一项或多项。如果项目总数超过可显示的项目
数,就自动添加滚动条。它是进行快速和规范输
入的好工具。
(不讲)举例,利用列表框显示学生的籍贯,并可以
添加列表项。创建下图所示窗口,选择列表框中学生
姓名,在籍贯处显示该学生的籍贯;单击, 添加, 按
钮,出现输入学生姓名文本框,并且按钮的文字变为
,确定,,此时输入姓名,在显示籍贯处输入籍贯,
单击, 确定, 按钮,将项目添加到列表框中。
对象 属性名 属性值
窗体 (名称) Form1
Caption Form1
列表框 (名称) Lst
List (空)
标签 1 (名称) LblName
Caption 学生姓名
标签 2 (名称) LblNative
Caption 学生籍贯
文本框 1 (名称) TxtName
Text (空)
文本框 2 (名称) TxtNative
Text (空)
命令按钮 (名称) CmdAdd
Caption 确定
上一页 下一页
Dim NativeArray() As String ?定义籍贯数组为动态数组
‘对列表框初始化
Private Sub Form_Load() ReDim NativeArray(0 To 8)
Lst.AddItem“李亿” NativeArray(0) = "天津 "
Lst.AddItem,王晓波” NativeArray(1) = "武汉 "
Lst.AddItem,万明” NativeArray(2) = "上海 "
Lst.AddItem,张君” NativeArray(3) =,北京”
Lst.AddItem,马萧萧” NativeArray(4) = "云南 "
Lst.AddItem,季林” NativeArray(5) = "南京 "
Lst.AddItem,陈奇” NativeArray(6) = "广州 "
Lst.AddItem,朱小 NativeArray(7) =,大连”
Lst.AddItem,周和平” NativeArray(8) =,河北”
End Sub
上一页 下一页
'列表框 Click事件,姓名标签及文本框隐藏,籍贯处显示学生籍贯
Private Sub Lst_Click()
CmdAdd.Caption = "添加 "
TxtName.Visible = False
LblName.Visible = False
TxtNative.Text = NativeArray(Lst.ListIndex)
End Sub
'单击添加按钮事件
Private Sub CmdAdd_Click() 例 li4-9-1点击此处进入
CmdAdd.Caption = "确定 "
TxtName.Visible = True
LblName.Visible = True
Lst.AddItem TxtName 例 li4-10点击此处进入
i = Lst.ListCount
ReDim Preserve NativeArray(i)
NativeArray(Lst.ListCount - 1) = TxtNative.Text
TxtName = ""
TxtNative = ""
End Sub 上一页 下一页
组合框 (ComboBox)是一种同时具有文本框和
列表框特性的控件, 用户既可以在其列表框部分
选择一个固定的字符串, 也可以在其文本框部分
输入一个新的字符串 。
组合框有三种不同的风格,下拉式组合框,
简单组合框 和 下拉式列表框
★ 下拉式组合框,显示在屏幕上的仅是文本编
辑框和一个下拉箭头。
★ 简单组合框,将文本编辑框与列表框一起显
示在屏幕上。
★ 下拉是列表框,功能与下拉式组合框类似,
区别是不能输入列表框中没有的项。
上一页 下一页
7 组合框
1.组合框属性
组合框是文本框和列表框的组合, 拥有列表框
和文本框的大部分属性 。 组合框也有 SelStart、
SelLength和 SelText这三个文本框特有的属性 。
组合框的特有属性是 Style属性 。 该属性用于
确定组合框的类型和显示方式, 共有三个值:
0 —下拉式组合框, 由一个文本框和一个下拉
式列表框组成, 用户既可以在文本框中输入文本,
也可以从列表框中选择列表项, 这是系统默认值;
l — 简单组合框, 也由一个文本框和一个标准列
表框组成, 但列表框不是下拉的, 它始终显示在屏
幕上, 用户既可以在文本框中输人文本, 也可以从
列表框中选择列表项;
2 — 下拉式列表框, 它不允许用户输入文本, 只
能从下拉列表框中选择列表项 。
2.组合框的方法
在组合框中也可以通过在程序中使用
AddItem方法添加选择项;用 RemoveItem方法和
Clear方法删除选择项 。 其操作方法与列表框一样 。
3.组合框的事件
组合框的事件随 Style属性的值不同而有所不
同:
当 Style=0,下拉式列表框有 Click事件和
Change事件;
当 Style=1,简单组合框有 DblClick事件和
Change事件;
当 Style=2,下拉式列表框有 Click事件。
4.组合框的使用
例 li4-11点击此处进入
上一页 下一页
滚动条 (ScrollBar)分为水平滚动条 (HScrollBar)
和垂直滚动条( VScrollBar)两种。
1,滚动条的属性
★ Max和 Min属性,用于设定或表示当滑块处于
滚动条最大和最小位置时所代表的值。
★ SmallChange最小变动值属性,用于设定当
用户用鼠标单击滚动条两端箭头式,滑块移动的增
量值。
★ LargeChange最大变动值属性,用于设定当
用户用鼠标单击滚动条滚动箭头和滑块间区域时,
滑块移动的增量值。
★ Value值属性,表示滚动条内滑块当前所处位
置的值。
上一页 下一页
8 滚动条
2,滚动条方法
滚动条没有特有的方法。
3,滚动条事件
★ Scroll事件,当在滚动条内拖动滑块时引发
的事件。
语法, Sub HScroll_Scroll( )
Sub VScroll_Scroll( )
★ Change事件, 当滚动条的位置发生变化时引
发该事件。
语法,Sub HScroll_Change( )
Sub Scroll_Change( )
4,滚动条的使用
例 li4-12点击此处进入
上一页
下一页
9 计时器 (Timer)
时钟( Timer)控件是一种定时触发事件的控
件,它能有规律地以一定的时间间隔激发时钟事
件( Timer)而执行相应的程序代码。
1,计时器控件的属性
★ Enable属性,设定时钟是否有效。它是一个
逻辑值,其中:
True,使时钟控件有效,开始有效计时
False:停止时钟控件工作
★ Interval属性,用于设定时钟触发事件的间
隔,单位为毫秒,取值范围为 0—65535。
Interval的值为 0,则计时器无效
Interval的值受硬件能力限制,最小间隔为 56
毫秒
2.计时器控件的事件
计时器只支持 Timer事件。基本语法形式为:
Sub Timer_Timer([Index As Integer])
其中,Index是一个整数值 。 如果当前时钟控件是
一个控件数组, 则 Index表示该时钟控件在数组中
的下标, 否则就不需要这一参数 。
3.计时器控件的使用
时钟控件是一个非常有用的控件, 它的功能就
和它的名字一样, 主要用于在程序中监视和控制时
间进程 。
我们一般都是在设计阶段设置它的 Interval属
性, 然后当某一事件发生 ( 如一个按钮被按下等 )
时设置时钟控件的 Enabled为 True,这时, 时钟控
件开始计时, 当到达 Interval属性的值时, 就会触
发 Timer事件中编制的处理程序 。
例 li4-13点击此处进入 例 li4-14点击此处进入
驱动器列表框是一种下拉式列表框, 平时只显
示当前驱动器名称, 单击其右边的向下箭头, 就会
下拉出该计算机所拥有的所有磁盘驱动器, 供用户
选择 。
驱动器列表框有一个 Drive属性, 在运行时返
回或设置所选定的驱动器 。 Drive属性不能在设计
状态时设置, 只能在程序中被引用或设置 。 其形式
如下:
[ 对象, ] Drive [ =drive]
其中,对象 — 驱动器列表框名称 。
drive — 驱动器名称 。
注意,每 次重 新设 置 Drive属性都 会引 发
Change事件 。
上一页
下一页
10 驱动器列表框( DriveListBox)
11 目录列表框( DirListBox)
目录列表框显示当前驱动器的目录结构及当前
目录下的所有子目录, 供用户选择其中的某个目录
作为当前目录 。 在目录列表框中, 如果用鼠标双击
某个目录, 就会显示出该目录下的所有子目录 。
目录列表框只能显示出当前驱动器下的子目录 。
如果要显示其他驱动器下的目录结构, 则必须重新
设置目录列表框上的 Path属性 。
Path属性用来返回或设置当前路径, 不能在设
计状态时设置 。 它适用于目录列表框和文件列表框,
其形式如下,[ 对象 ], Path [=Pathname]
其中:对象 — 指目录列表框或文件列表框名称
pathname — 一个路径名字符串 。
注意:每次重新设置 Path属性都会引发 Change事件 。
12 文件列表框( FileListBox)
文件列表框显示当前驱动器中当前目录下的文
件目录清单 。 文件列表框也有 Path属性, 表示文件
列表框中显示的文件所在的路径 。 每次重新设置
Path属性都会引发, PathChange”事件 。
文件列表框的 Pattern属性 返回或设置文件列
表框所显示的文件类型 。 该属性值为具有通配符的
文件名字符串, 既可以在设计时设置, 也可以在程
序中改变 。 缺省值为, *.*”,显示所有文件 。 其形
式如下,[ 对象, ] Pattern[ =value]
其中,对象 — 指文件列表框名称 。
value — 一个文件名字符串 。
注意:每次重新设置 Pattern属性都会引发
,PatternChange”事件。
在窗体中加入驱动器、目录和文件列表
框控件,使三者同步显示。另外,加入一个文本
框,通过在文本框中输入文件类型,使文件列表
框中显示指定类型的文件 。
例 li4-15点击此处进入
返 回上一页 下一页
驱动器、目录和文件列表框控件的例子
一,ActiveX控件
所谓 ActiveX控件就是一段可以重复使用的编
程代码和数据,是由 ActiveX技术创建的一个或多
个对象所组成的,ActiveX控件文件的扩展名为
OCX,通常放在 Windows的 System目录下。
二,向工具箱中添加 ActiveX控件
1、方法一:, 工程, 菜单 →, 部件, →, 控
件,
方法二:在, 工具箱, 中击右键,选择
,部件,
2、找到所需的控件或对象,单击左边的复选
框选定。
三、举例
下一页
4.2 使用 ActiveX控件和
可插入对象
在窗体上建立进度条、标签、命令按钮和时钟控
件,单击, 开始, 按钮,进度条开始逐步前行,
在窗体上显示, 进度条开始运行,请稍候!, 信
息;进度条填满后,窗体显示, 进度条运行完毕,
信息。
添加进度条:, 工程, 菜单 →, 部件, →, 控件,
→, Microsoft Windows Common Controls 6.0”
上一页 下一页
对象 属性名 属性值
窗体 名称 FrmExp
Caption ActiveX举例
进度条 名称 PrgBar
标签 名称 LblDisp
Caption (空)
命令按钮 名称 CmdStart
Caption 开始
计时器 名称 TmrClock
Interval 100
事件过程代码:
Dim i As Integer
Private Sub Form_load( )
LblDisp.Visible = False
TmrClock.Enabled
=False
PrgBar.Value = 0
End Sub
上一页
下一页
Private Sub CmdStart_Click()
LblDisp.Visible = True
LblDisp.Caption = "进度条开始运行,请稍候! "
TmrClock.Enabled = True
End Sub
Private Sub TmrClock_Timer()
If i < 100 Then
i = i + 1
PrgBar.Value = I 例 li4-19单击此处进入
Else
i = 0
TmrClock.Enabled = False
LblDisp.Caption = " 进度条运行完毕 "
End If
End Sub 返 回上一页 下一页
4.4控件应用举例
例:在窗体中分别加入组合框, 水平滚动条和文
本框, 利用组合框设置文本框中的字体;利用水
平滚动条设置文本框中的字号 。 其中设置字体的
组合框为下拉式列表框 ( Style属性为 2,不能输
入 ) ;当用鼠标单击水平滚动条时, 在当前字号
值文本框中显示滚动条滑块当前的值并由该值设
置文本框中的字号 。
例 li4-17单击此处进入
4.4控件应用举例 (不讲)
例 1:此例将介绍列表框和组合框添加、删除控
件等事件,以及标签和命令按钮的使用。
创建窗体及控件
窗体及控件界面如图所示:
窗体及控件界面
各控件属性
Label1,Caption =,请输入职工姓名”
Label2,Caption =,请输入干部姓名”
Label3,Caption =,职工人数”
Label4,Caption =,干部人数”
Text1,text =,,
Text2,text =,,
?Text3,text =,,
?Text4,text =,,
?List1,text =,,
?Combo1,text =,,
?Command1,Caption =,添加职工,
?Command2,Caption =,删除职工,
?Command3,Caption =,添加干部,
?Command4,Caption =,删除干部,
设置属性后的窗体界面
?Private Sub Command1_Click()
? If Text1.Text <> "" Then
? List1.AddItem Text1.Text
? Text3.Text = Val(List1.ListCount)
? Text1.Text = ""
? End If
?End Sub
程序代码
?Private Sub Command2_Click()
? If List.ListCout > 0 Then
? List1.RemoveItem ListCount
? Text3.Text = Val(List1.ListCount)
? End If
?End Sub
?Private Sub Command3_Click()
? If Text2.Text <> "" Then
? Combo1.AddItem Text2.Text
? Text4.Text = Val(Combo1.ListCount)
? Text2.Text = ""
? End If
?End Sub
?Private Sub Command4_Click()
? If Combo1.ListCount > 0 Then
? Combo1.RemoveItem ListCout
? Text4.Text = Val(Combo1.ListCount)
? End If
?End Sub
运行创建的应用程序
?运行结果如图所示:
? 运行该程序, 在, 请输入职工姓名, 文
本框中输入职工姓名, 并单击, 添加职工,
按钮, 那么输入的姓名就添加到了列表框;
单击, 删除职工, 按钮, 则列表框中末位
职工姓名被删除 。, 请输入干部姓名, 也
类似以上操作 。, 职工人数,,, 干部人
数, 分别指出了当前列表框和组合框的人
数 。
例 2,设计一个显示时间和日期的小程序 。 在
窗体上放置三个标签, 一个文本框, 一个复选框,
两个框架 ( 并分别在其中放置一个组合框和两个
单选按钮 ), 两个命令按钮和一个计时器 。
?初始窗体中各控件属性设置值
? 对象 属性 设置值
? Form Name FrmTimeDisp
? Caption 计时秒表
? Label1 BackColor &H00FF0000&
? ForeColor &H0000FFFF&
? Label2 Caption 延续时间
? Label3 Caption 秒
? Text1 Name TxtTime
? Text 10
? CheckBox1 Name ChkDate
? Caption 显示日期
? Frame1 Name FraDateType
? Caption 日期格式 (&D)
? Frame2 Caption 时间格式 (&T)
? Timer1 Interval 1000
? ComboBox1 Name CboDateType
? List 年 /月 /日, 月 /日 /年,
? 日 /月 /年
? Style 2
? Option1 Name OptTimeType
? Caption 24小时制
? Index 0
? Option2 Name OptTimeType
? Caption 12小时制
? Index 1
? Command1 Name CmdStart
? Caption 开始计时
? Default True
? Command2 Name CmdEnd
? Caption 退出
各控件事件处理程序代码:
?在窗体的通用声明中写入变量和数组的定义
Dim DateType(3) As String
Dim TimeType(2) As String
Dim Seconds As Integer
?当选中显示日期复选框时, 时间格式框架才成
为可见
Private Sub ChkDate_Click()
fraDateType.Visible =( chkDate.Value=1)
End Sub
ˊ 在窗体的, Form_Load”事件中初始化各变量,
数组及窗体的显示状态
Private Sub Form_Load()
chkDate.Value = 1
cboDateType.ListIndex = 0
optTimeType(0).Value = True
DateType$(0) = "yy年 mm月 dd日 "
DateType$(1) = "mm月 dd日 yy年 "
DateType$(2) = "dd日 mm月 yy年 "
TimeType$(0) = ""
TimeType$(1) = "ampm“
End Sub
ˊ cmdStart事件处理程序
Private Sub cmdStart_Click( )
Seconds% = txtTime.Text
CmdStart.Enabled = False
Timer1.Enabled = True
End Sub
ˊ cmdEnd事件处理程序
Private Sub cmdEnd_Click( )
Unload Me
End Sub
ˊ 计时器控件事件处理程序
Private Sub Timerl_Timer( )
Dim i,j As Integer
Dim dateStr $
Seconds = Seconds - l
i = cboDateType.ListIndex
If optTimeType (0).Value = True Then
j = 0
Else
j = 1
End If
If chkDate.Value = 0 Then
DateStr $ = ""
Else
DateStr $ = DateType $(i)
End If
Label1.Caption = Format(Now,dateStr $ +
"hh:mm:ss" + TimeType $ (j) )
If Seconds = 0 Then
Timer1.Enabled = False
CmdStart.Enabled= True
Label1.Caption = ""
End If
End Sub