第四章 常用控件
本章要求:
掌握常用控件单选钮、复选框,框架、滚动条,列表
框、组合框、时钟等控件的常用属性、重要事件和方法的
使用;
本章重点:
单选钮、复选框,框架、滚动条,列表框、组合
框、时钟等控件的常用属性、重要事件和方法的使用。
本章难点:
列表框、组合框和时钟控件 。
在 Visual Basic 中,单选与复选按钮控
件主要作为选项提供给用户选择。不同的
是,在一组选择按钮中,单选控件只能选
择一个,其他单选控件自动变为未被选中
状态;而在一组复选按钮中,可以选定任
意数量的按钮。
4.1 清单类控件
4.1.1单选钮和复选框
4.1 清单类控件
单选按钮
4.1.1单选钮和复选框
1 单选钮用途
单选钮( OptionButton)
也称作选择按钮。一组单
选钮控件可以提供一组彼
此相互排斥的选项,任何
时刻用户只能从中选择一
个选项,实现一种, 单项选
择, 的功能,被选中项目左
侧圆圈中会出现一黑点。
4.1 清单类控件
3 方法
SetFocus方法是单选钮控件最常用的方法, 可以在代码中通
过该方法将 Value属性设置为 True。
与命令按钮相同, 使用该方法之前, 必须要保证单选钮处
于可见和可用状态 ( 即 Visible与 Enabled属性值均为 True) 。
4 事件
Click事件是单选钮控件最基本的事件, 一般情况用户无
需为单选钮编写 Click事件过程, 因为当用户单击单选钮时,
它会自动改变状态 。
5 单选按钮程序举例
文本框( Text1)显示预设的字样;单选按钮一( Option1),
单击此按钮可以将文本框里显示的字样改变成 黑体;
单选按钮二( Option2),单击此按钮能将文本框里显示的字
样改变成 楷体。
4.1 清单类控件
4.1 清单类控件
( 4) Style 属性
0--Standard,标准方式 1--Graphical:图形方式
说 明,在 Style属性设置为 1时,可使用 Picture 属性
2,单选钮重要属性
( 1) Caption,文本标题 。 设置单选钮的文本注释内容 。
( 2) Alignment属性,
0,Left Justify(缺省设置 )控件钮在左边, 标题显示在右边 。
1,Right Justify 控件钮在右边, 标题显示在左边 。
( 3) Value 属性
True,单选钮被选定
False,单选钮未被选定
1、单选按钮一:
Private Sub Optionl_Click()
Text1.FontName = ―黑体”
End Sub
2、单选按钮二:
Private Sub Optin2_Click()
Text1.FontName = ―楷体 _GB2312"
End Sub
4.1 清单类控件
4.1 清单类控件
2 复选框
1,用途
复选框 ( CheckBox) 也称作检查框, 选择框 。 一组复
选框控件可以提供多个选项, 它们彼此独立工作, 所以用
户可以同时选择任意多个选项, 实现一种, 不定项选择, 的
功能 。 选择某一选项后, 该控件将显示 √,而清除此选项
后 √ 消失 。
复选框被选中
4.1 清单类控件
复选框与单选按钮 Value 属性的比较
复选框
0--Unchecked:未被选定
1--Checked:选定
2--Grayed:灰色,禁止选择
单选钮
True,单选钮被选定
False,单选钮未被选定,
缺省设置
请大家注意,单选控件与复选控件的 Value 值是不
同的,而这是初学者最容易混淆的。
2,重要属性
Caption,Alignment,Style与单选钮相同
4.1 清单类控件
3.事件
Click事件是复选框控件最基本的事件 。 用户
一般无需为复选框编写 Click事件过程, 但其对
Value属性值的改变遵循以下规则:
单击未选中的复选框时, Value属性值变为 1;
单击已选中的复选框时, Value属性值变为 0;
单击变灰的复选框时,Value属性 值变为 2。
4 复选按钮举例:
4.1 清单类控件
文本框( Text1)显示预设的字样;
复选按钮一( Check1)可以将文本框里面的字变
为粗体;
复选按钮二( Check2)可以将文本框里面的字变
为斜体;
复选按钮三( Check3)可以给文本框里面的文字
加上下划线。
4 复选按钮举例:
4.1 清单类控件
复选按钮一:
Private Sub Check1_Click()
If Check1.Value = 1 Then
Text1.FontBold = True
Else
Text1.FontBold = False
End If
End Sub
4.1 清单类控件
复选按钮二:
Private Sub Check2_Click()
If Check1.Value = 1 Then
Text1.FontItalic = True
Else
Text1.FontItalic = False
End If
End Sub
4.1 清单类控件
复选按钮三:
Private Sub Check3_Click()
If Check1.Value = 1 Then
Text1.FontUnderline = True
Else
Text1.FontUnderline = False
End If
End Sub
4.1 清单类控件
联想:
复选按钮是不是非得经过这种选择判断?
能不能如单选按钮那样直接使用呢?
还是上面这个例子,假设复选按钮一不经过判断,而直接在
点击事件中输入代码:
Private Sub Check1_Click()
Text1.FontBold = True
End Sub
那么你会发现,复选按钮一经点击就不能取消字体加粗的效
果了;而实际上,复选按钮的功能是,点击一次即选中时,
字体加粗;点击第二次即取消选择,字体不再加粗;以此类
推。
4.1 清单类控件
5:知识点:
1、切记,单选按钮与复选按钮的 Value 值是不同的。
单选按钮:
选中时,Value 值为 True ;
未被选中时,Value 值为 False 。
复选按钮:
选中时,Value 值为 1 ;
未被选中时,Value 值为 0 ;
禁止选择,Value 值为 2 。
你可以试验一下,将复选按钮的 Value 值分别用
True/False 代替,看一下会出现什么问题。
2、两种选择按钮都针对 Click 事件做出反应,但单选按钮
比较简单,只需直接输入代码即可;复选按钮比较复杂,
需经过条件判断后再做出反应。切记!
4.1 清单类控件
4.1 清单类控件
4.1.2 框架 (Frame)
Frame 控件为控件提供可标识的分组。它是一个容器控件。
当需要在同一窗体内建立几组互独立的单选钮时,就需要用
框架将每一组单选钮框起来,把 OptionButton 控件分成
几组,如下形式 。
设三个框架
设 Caption为, 字形 "
4.1 清单类控件
重要属性
1,Caption属性:框架标题
2 Enabled属性:
缺省为 True
False:标题呈灰色,不允许对框架内的所有对象
进行操作
3,Visible属性:
True:框架及其控件可见。
False:框架及其控件被隐藏起来 。
4.1 清单类控件
事件:
框架可以响应的事件 Click,DblClick,一般不需
要有关框架的事件过程。
为了将控件分组,首先需要绘制 Frame 控件,然后
绘制 Frame 里面的控件。
注意:
单选按钮,复选框和框架控件综合举例
例:设计个人资料输入窗口,使用选项按钮组输入性别与
民族,使用复选框输入个人爱好。
4.1 清单类控件
Private Sub Command1_Click()
If Text1.Text = "" Then
a = InputBox("您忘了输入姓名! ","注意 ","请在此输入姓名 ")
If a = ―‖ Or a = ―请在此输入姓名” Then Exit Sub
Text1.Text = a
End If
p1 = Text1.Text + ","
程序如下:
4.1 清单类控件
p2 = IIf(Option1,"男 ","女 ") + ","
p3 = IIf(Option3,"汉族 ","少数民族 ")
p4 = ",喜欢,"
If Check1.Value = 1 Then p4 = p4 + Check1.Caption + ","
If Check2.Value = 1 Then p4 = p4 + Check2.Caption + ","
If Check3.Value = 1 Then p4 = p4 + Check3.Caption + ","
If Check4.Value = 1 Then p4 = p4 + Check4.Caption + ","
aa = p1 + p2 + p3 + IIf(p4 = ",喜欢 ",",无爱好 ",p4)
Label4.Caption = Left(aa,Len(aa) - 1) + "。 "
Text1.SetFocus
End Sub
4.1 清单类控件
4.1 清单类控件
例 4.1设计一个简单小型的编辑器,用户可以在文本框中输入一
段文字,单击复选框和单选框,可以改变文本的字体,字
型和颜色
根据程序流程, 应该先对, 开始, 命令按钮 ( Command1) 编写单击事件
过程, 代码如下所示:
Private Sub Command1_Click()
Image1.Visible = False
Command1.Visible = False
Command2.Visible = False
Text1.Visible = True
Option1.Visible = True
Option2.Visible = True
Check1.Visible = True
Check2.Visible = True
End Sub
―退出, 命令按钮 ( Command2) 用于关闭应用程序, 因此使用 End方法,
其代码如下:
Private Sub Command2_Click()
End
End Sub
4.1 清单类控件
进入图 4.3所示的用户界面后, 若选中复选框 1使文本变成斜体,
则 Text1的 FontItalic属性设为 True;若选中复选框 2使文本变成
红色, 则设 Text1的前景色为红色 。 复选框单击事件过程如下:
Private Sub Check1_Click()
Text1.FontItalic = True
End Sub
Private Sub Check2_Click()
Text1.ForeColor = vbRed
End Sub
单选框决定文本的字体是宋体还是隶书, 如果选中单选框 1,则
文本字体为宋体;若选中单选框 2,则文本字体为隶书 。 其代码如下:
Private Sub Option1_Click()
Text1.FontName = ?宋体 ?
End Sub
Private Sub Option2_Click()
Text1.FontName = ?隶体 ?
End Sub
4.1 清单类控件
4.1 清单类控件
4.1.3 列表框与组合框
一, 用途
列表框控件( ListBox) 用于显示项目列表,用户可
从中选择一个或多个项目。如果项目总数超过了可显示的项
目数,VB会自动加上滚动条。
列表框有两种风格:标准和复选列表框。通过它的
Style属性来设置。如下图:
4.1 清单类控件
组合框控件 ( ComboBox) 将文本框和列表框的功能结合
在一起, 用户可以在列表中选择某项 ( 只能选取一项 ) 。 或
在编辑区域中直接输入文本内容来选定项目 。
组合框共三种风格:下拉式组合框, 简单组合框和下拉式列
表框 ( 见下图 ) 。
4.1 清单类控件
二、主要 属性
1,Style属性
该值用来指示控件的显示类型和行为 。 在运行时是只读
的 。 对于列表框控件或组合框控件都有 Style属性, 但它们的
含义是不同的 。
例如,在窗体上放置 2个列表框,将其 Style属性分别设
置为 0和 1;放置 3个组合框,将它们 Style属性分别设置为 0,1
和 2。
4.1 清单类控件
2,List,ListCount和 ListIndex属性
List,字符型数组,存放列表框的项目数据,下标是
从 0开始的。
例如,List(0)表示第一项( Listindex=0)的内容
列表框项目可在设计模式下一项一项输入。
ListIndex,为整型值,选中的项目的序号,如果列表
框可多选,则为最后一次选中项目的序号,没有项目选中时
为 -1。
ListCount,为整型值,表示项目的数量,ListCount-
1是最后一项的下标。
4.1 清单类控件
3,MultiSelect属性
用于指示是否能够在列表框控件中进行复选以及如何进行复
选, 在运行时是只读的 。 注意, 组合框控件无此属性 。
MultiSelect 属性设置值及含义
设置值 含 义
0 ( 缺省值 ) 不允许复选
1 简单复选 。 鼠标单击或按下空格键在列表中选中或取消选中项 。
箭头键移动焦点
2 扩展复选 。 按下 SHIFT 并单击鼠标将在以前选中项的基础上扩展
选择到当前选中项 。 按下 CTRL 并单击鼠标来在列表中选中或取
消选中项
4.1 清单类控件
4,Selected属性
该属性返回或设置列表框控件中的一个项目的选择状态 。
该属性是一个逻辑类型的数组, 数组元素个数与列表框中的项
目数相同, 其下标的变化范围与 List属性相同 。
例如,List1.Selected( 0) =True表示列表框 List1的第
一个项目被选中,此时 ListIndex的值设置为 0。 Selected属性
在设计时是不可用的,即无法在属性窗口中设置属性值。
5,Sorted属性
返回一个逻辑值, 当 Sorted属性为 True时列表框控件或
组合框控件的项目自动按 字母表顺序 ( 升序 ) 排序, 为 False
时项目按加入的先后顺序排列显示 。 该属性只能在设计时设
置, 不能在程序代码中设置 。
4.1 清单类控件
6,Text属性
对于组合框,( Combo1)
下拉式组合框与简单组合框 ( Style=0和 1),
Text属性返回编辑区域中的文本 。
下拉列表框, Text属性的返回当前被选中的项, 值总与
combo1.List( combo1.ListIndex) 的值相同 。
对于列表框, ( List1)
Text属性选中的文本, 如果列表框可多选, 则为最后一次
选中项目 。 Text属性值总与 List1.List( List1.ListIndex) 的
值相同 。
4.1 清单类控件
列表框、组合框各主要属性的值:
List1.List(List1.ListIndex)=―abc‖
ListCount = 6
ListIndex = 3 (下标从 0开始的 )
Selected(3) = True 其余为 False。
Sorted = False 没有排序。
Text = ―abc‖
Combo1.List(Combo1.ListIndex)=―abc‖
4.1 清单类控件
3 方法
1,AddItem方法
用于将项目添加到列表框控件或组合框控件 。
语法格式:
〈 对象名 〉,AddItem item [,index]
其中,item,为字符串表达式,表示要加入的项目。
Index:决定新增项目的位置,缺省,则添加在最后。
2,RemoveItem方法
用于从列表框控件或组合框控件中删除一项 。
语法格式:
〈 对象名 〉, RemoveItem index
对 index参数的规定同 AddItem方法。
4.1 清单类控件
例如,要删除列表框( List1)中所有选中的项目,可使
用下面的程序段:
i = 0
Do While i <= List1.ListCount - 1
If List1.Selected(i) = True Then
List1.RemoveItem I
else
i = i + 1
End If
loop
4.1 清单类控件
3,Clear方法
用于清除列表框控件或组合框控件中的所有项目 。
语法格式:
〈 对象名 〉, Clear
例如, 删除列表框 ( List1) 中所有项目, 可使用:
List1,Clear
4.1 清单类控件
4,事件
( 1) Click事件
当单击某一列表项目时, 将触发列表框与组合框控件的
Click事件 。 该事件发生时系统会自动改变列表框与组合框控
件的 ListIndex,Selected,Text等属性, 无需另行编写代码 。
( 2) DblClick事件
当双击某一列表项目时, 将触发列表框与简单组合框控件
的 DblClick事件 。
( 3) Change事件 ( 列表框没有此事件 )
当用户通过键盘输入改变下拉式组合框或简单组合框控
件的文本框部分的正文, 或者通过代码改变了 Text属性的设置
时, 将触发其 Change事件 。
【 例 4.4】 设计一个星座与性格的水晶球 。
4.2 图片类控件
VB中与图形有关的控件有:
?图片框( PictureBox)、图像框( Image)
窗体、图形框和图像框可以显示来自图形文件的图形
1,位图 (bitmap):位图通常以,bmp或,dib为文件扩展名 。
2,图标 (icon):以,ico为文件扩展名 。
3,元文件 (metafile),元文件的类型有两种, 分别是标准型
(,wmf) 和增强型 (,emf) 。
4,JPEG文件,JPEG是一种支持 8 位和 24 位颜色的压缩位
图格式 。 它是 Internet 上一种流行的文件格式 。
5,GIF文件,GIF是一种压缩位图格式。它可支持多达 256
种的颜色,是 Internet 上一种流行的文件格式。
4.2 图片类控件
4.2.1 图像框控件 ——Image控件 。
图像框比图形框占用更少的内存快。图像框内不能保存
其他控件。
Image控件,不是容器控件。
Image控件加载图片、删除图片、保存图片的方法:
与 PictureBox控件相同
Stretch属性:
设置为 False,图像框可自动改变大小以适应其中的图形。
设设置 True,图形可自动调整尺寸以适应图像框的大小。
4.2 图片类控件
4.2.2 图片框控件 ——PictureBox
主要作用:显示图片、也可作为其他控件的容器。
1、装入图形:
图形框对象,Picture = LoadPicture(―图形文件名, )
2、删除图形
图形框对象,Picture = LoadPicture( )
3.保存图片
使用 SavePicture语句, 其使用格式如下:
SavePicture [Object.]Picture|Image,FileName
注意:当 Autosize属性设置为 True时, 图形框能自动调整
大小与显示的图片匹配
【 例 4.4】 设计一个简单的, 图片缩放, 器。
4.2 图片类控件
① 在 Command1控件上双击鼠标左键, 调出代码窗口, 在 Command1_Click ()事件代码
窗口中输入以下代码 。
Private Sub Command1_Click()
Image1.Top = Image1.Top - 25
Image1.Left = Image1.Left - 25
Image1.Width = Image1.Width + 50
Image1.Height = Image1.Height + 50
End Sub
② 重复步骤 2,在 Command2_Click ()事件代码窗口中输入以下代码 。
Private Sub Command2_Click()
Image1.Width = Image1.Width - 50
Image1.Height = Image1.Height - 50
Image1.Top = Image1.Top + 25
Image1.Left = Image1.Left + 25
End Sub
4.2 图片类控件
【 例 4.6】 设计一个简单的, 看图学英文, 的少儿多媒体教学软
件 。
4.2 图片类控件
在 Picture 1控件上双击鼠标左键, 调出代码窗口, 选择 MouseMove事件,
MouseMove事件是指当鼠标在指定控件上移动时激活程序,
在 Picture 1_MouseMove()事件代码窗口中输入以下代码 。
Private Sub Picture 1_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "bear"
End Sub
③ 重复步骤 2,输入以下代码:
Private Sub Picture 2_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "monkey"
End Sub
Private Sub Picture 3_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "horse"
End Sub
Private Sub Picture 4_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "tiger"
End Sub
4.2 图片类控件
4.3 计时器
1.用途
计时器控件( Timer)又称时钟、定时
器控件,用于 有规律地定时执行指定的工作,
常常用于编写不需要与用户进行交互就可直
接执行的代码,如计时、倒计时、动画等。
在程序运行阶段,时钟控件不可见。
4.3 计时器
2,属 性
( 1) Interval属性
取值范围在 0 ~ 64767, 单位:为 毫秒 ( 0.001秒 ), 表
示计时间隔 。 若将 Interval属性设置为 0或负数, 则计时器停止
工作 。
缺省设置为 0
( 2) Enabled属性
设置为 True,而且 Interval属性值大于 0,则计时器 开始
工作 ( 以 Interval属性值为间隔, 触发 Timer事件 ) 。
设置为 False可使时钟控件无效, 即计时器停止工作 。
缺省设置为 True
( 2) Enabled属性
4.3 计时器
4.3 计时器
3,方 法
Timer控件没有方法 。
4,事 件
时钟控件只有 Timer事件
当 Enabled属性值为 True且 Interval属性值大于 0时,
该事件以 Interval属性指定的时间间隔发生
常常将需要定时执行的操作放在 Timer事件 过程中
4.3 计时器
时钟控件的应用举例
例 4.7 利用计时器和图像控件设计一个简单的动画。
在 Timer1控件上双击鼠标左键, 调出代码窗口, Timer1_Timer ()事件过程中
输入以下代码 。
Private Sub Timer1_Timer()
Dim s As Integer
s = Int(Rnd() * (2 - 0 + 1)) + 0 ?利用 Rnd()产生 0,1和 2三个乱数
Select Case s
Case 0
Image0.Visible = True
Image1.Visible = False
Image2.Visible = False
Case 1
Image1.Visible = True
Image0.Visible = False
Image2.Visible = False
Case 2
Image2.Visible = True
Image1.Visible = False
Image0.Visible = False
End Select
End Sub
4.3 计时器
4.4 滚动条
1,用 途
滚动条控件( ScrollBar)分为水平滚动条
( HScrollbar)和垂直滚动条( VscrollBar)二种,通常附
在窗体上协助观察数据或确定位置,也可用作数据输入工具,
用来提供某一范围内的数值供用户选择。
4.4 滚动条
2,属性
(1) Value
滑块所处位置所代表的值。
(2) Max:最大值
-32,768~32,767
(3) Min:最小值
-32,768~32,767
(4) SmallChange
最小变动值,
单击箭头时移动的增量值。
(5) LargeChange
最大变动值,单击空白处时移动的增量值 。
4.4 滚动条
3.事件
( 1) Change事件
滚动条的 Change事件在移动滚动框或通过代码改变其
Value属性值时发生 。 单击滚动条两端的箭头或空白处将引
发 Change事件 。
( 2) Scroll事件
当滚动框被重新定位, 或按水平方向或垂直方向滚动时,
Scroll事件发生 。 拖动滑块时会触发 Scroll事件 。
Scroll事件与 Change事件的区别在于:当滚动条控件滚
动时 Scroll事件一直发生, 而 Change事件只是在滚动结束之
后才发生一次 。
4.4 滚动条
【 例 4.9】 计算年收入。设某公司职工 1996年人均年收入为 10000元,
要求在屏幕上显示出当人均年收入增长率不断变化时,从 1997年到 2100年
中的人均年收入。
编制代码如下:
Private Sub Form_Load()
HScroll1.Enabled = False
End Sub
此事件过程设置水平滚动条在垂直滚动条未改变前应该为无效状态 。
Private Sub VScroll1_Change()
Label1.Caption = Str$(VScroll1.Value) + ?年 ?
HScroll1.Enabled = True
End Sub
执行此事件过程, 通过改变垂直滚动条位置选择年份并在标签 1上显示 。
当用户改变水平滚动条的值时, 执行以下事件过程:
Private Sub HScroll1_Change()
s = 1
n = VScroll1.Value – 1996
r = HScroll1.Value / 100
s1 = s ? (1 + r) ^ n
Label2.Caption = ?年收入增长率,? + Str$(r) + ?%?
Text1.Text = ?人均年收入,? + Str$(s1) + ?万元 ?
End Sub
4.4 滚动条
本章要求:
掌握常用控件单选钮、复选框,框架、滚动条,列表
框、组合框、时钟等控件的常用属性、重要事件和方法的
使用;
本章重点:
单选钮、复选框,框架、滚动条,列表框、组合
框、时钟等控件的常用属性、重要事件和方法的使用。
本章难点:
列表框、组合框和时钟控件 。
在 Visual Basic 中,单选与复选按钮控
件主要作为选项提供给用户选择。不同的
是,在一组选择按钮中,单选控件只能选
择一个,其他单选控件自动变为未被选中
状态;而在一组复选按钮中,可以选定任
意数量的按钮。
4.1 清单类控件
4.1.1单选钮和复选框
4.1 清单类控件
单选按钮
4.1.1单选钮和复选框
1 单选钮用途
单选钮( OptionButton)
也称作选择按钮。一组单
选钮控件可以提供一组彼
此相互排斥的选项,任何
时刻用户只能从中选择一
个选项,实现一种, 单项选
择, 的功能,被选中项目左
侧圆圈中会出现一黑点。
4.1 清单类控件
3 方法
SetFocus方法是单选钮控件最常用的方法, 可以在代码中通
过该方法将 Value属性设置为 True。
与命令按钮相同, 使用该方法之前, 必须要保证单选钮处
于可见和可用状态 ( 即 Visible与 Enabled属性值均为 True) 。
4 事件
Click事件是单选钮控件最基本的事件, 一般情况用户无
需为单选钮编写 Click事件过程, 因为当用户单击单选钮时,
它会自动改变状态 。
5 单选按钮程序举例
文本框( Text1)显示预设的字样;单选按钮一( Option1),
单击此按钮可以将文本框里显示的字样改变成 黑体;
单选按钮二( Option2),单击此按钮能将文本框里显示的字
样改变成 楷体。
4.1 清单类控件
4.1 清单类控件
( 4) Style 属性
0--Standard,标准方式 1--Graphical:图形方式
说 明,在 Style属性设置为 1时,可使用 Picture 属性
2,单选钮重要属性
( 1) Caption,文本标题 。 设置单选钮的文本注释内容 。
( 2) Alignment属性,
0,Left Justify(缺省设置 )控件钮在左边, 标题显示在右边 。
1,Right Justify 控件钮在右边, 标题显示在左边 。
( 3) Value 属性
True,单选钮被选定
False,单选钮未被选定
1、单选按钮一:
Private Sub Optionl_Click()
Text1.FontName = ―黑体”
End Sub
2、单选按钮二:
Private Sub Optin2_Click()
Text1.FontName = ―楷体 _GB2312"
End Sub
4.1 清单类控件
4.1 清单类控件
2 复选框
1,用途
复选框 ( CheckBox) 也称作检查框, 选择框 。 一组复
选框控件可以提供多个选项, 它们彼此独立工作, 所以用
户可以同时选择任意多个选项, 实现一种, 不定项选择, 的
功能 。 选择某一选项后, 该控件将显示 √,而清除此选项
后 √ 消失 。
复选框被选中
4.1 清单类控件
复选框与单选按钮 Value 属性的比较
复选框
0--Unchecked:未被选定
1--Checked:选定
2--Grayed:灰色,禁止选择
单选钮
True,单选钮被选定
False,单选钮未被选定,
缺省设置
请大家注意,单选控件与复选控件的 Value 值是不
同的,而这是初学者最容易混淆的。
2,重要属性
Caption,Alignment,Style与单选钮相同
4.1 清单类控件
3.事件
Click事件是复选框控件最基本的事件 。 用户
一般无需为复选框编写 Click事件过程, 但其对
Value属性值的改变遵循以下规则:
单击未选中的复选框时, Value属性值变为 1;
单击已选中的复选框时, Value属性值变为 0;
单击变灰的复选框时,Value属性 值变为 2。
4 复选按钮举例:
4.1 清单类控件
文本框( Text1)显示预设的字样;
复选按钮一( Check1)可以将文本框里面的字变
为粗体;
复选按钮二( Check2)可以将文本框里面的字变
为斜体;
复选按钮三( Check3)可以给文本框里面的文字
加上下划线。
4 复选按钮举例:
4.1 清单类控件
复选按钮一:
Private Sub Check1_Click()
If Check1.Value = 1 Then
Text1.FontBold = True
Else
Text1.FontBold = False
End If
End Sub
4.1 清单类控件
复选按钮二:
Private Sub Check2_Click()
If Check1.Value = 1 Then
Text1.FontItalic = True
Else
Text1.FontItalic = False
End If
End Sub
4.1 清单类控件
复选按钮三:
Private Sub Check3_Click()
If Check1.Value = 1 Then
Text1.FontUnderline = True
Else
Text1.FontUnderline = False
End If
End Sub
4.1 清单类控件
联想:
复选按钮是不是非得经过这种选择判断?
能不能如单选按钮那样直接使用呢?
还是上面这个例子,假设复选按钮一不经过判断,而直接在
点击事件中输入代码:
Private Sub Check1_Click()
Text1.FontBold = True
End Sub
那么你会发现,复选按钮一经点击就不能取消字体加粗的效
果了;而实际上,复选按钮的功能是,点击一次即选中时,
字体加粗;点击第二次即取消选择,字体不再加粗;以此类
推。
4.1 清单类控件
5:知识点:
1、切记,单选按钮与复选按钮的 Value 值是不同的。
单选按钮:
选中时,Value 值为 True ;
未被选中时,Value 值为 False 。
复选按钮:
选中时,Value 值为 1 ;
未被选中时,Value 值为 0 ;
禁止选择,Value 值为 2 。
你可以试验一下,将复选按钮的 Value 值分别用
True/False 代替,看一下会出现什么问题。
2、两种选择按钮都针对 Click 事件做出反应,但单选按钮
比较简单,只需直接输入代码即可;复选按钮比较复杂,
需经过条件判断后再做出反应。切记!
4.1 清单类控件
4.1 清单类控件
4.1.2 框架 (Frame)
Frame 控件为控件提供可标识的分组。它是一个容器控件。
当需要在同一窗体内建立几组互独立的单选钮时,就需要用
框架将每一组单选钮框起来,把 OptionButton 控件分成
几组,如下形式 。
设三个框架
设 Caption为, 字形 "
4.1 清单类控件
重要属性
1,Caption属性:框架标题
2 Enabled属性:
缺省为 True
False:标题呈灰色,不允许对框架内的所有对象
进行操作
3,Visible属性:
True:框架及其控件可见。
False:框架及其控件被隐藏起来 。
4.1 清单类控件
事件:
框架可以响应的事件 Click,DblClick,一般不需
要有关框架的事件过程。
为了将控件分组,首先需要绘制 Frame 控件,然后
绘制 Frame 里面的控件。
注意:
单选按钮,复选框和框架控件综合举例
例:设计个人资料输入窗口,使用选项按钮组输入性别与
民族,使用复选框输入个人爱好。
4.1 清单类控件
Private Sub Command1_Click()
If Text1.Text = "" Then
a = InputBox("您忘了输入姓名! ","注意 ","请在此输入姓名 ")
If a = ―‖ Or a = ―请在此输入姓名” Then Exit Sub
Text1.Text = a
End If
p1 = Text1.Text + ","
程序如下:
4.1 清单类控件
p2 = IIf(Option1,"男 ","女 ") + ","
p3 = IIf(Option3,"汉族 ","少数民族 ")
p4 = ",喜欢,"
If Check1.Value = 1 Then p4 = p4 + Check1.Caption + ","
If Check2.Value = 1 Then p4 = p4 + Check2.Caption + ","
If Check3.Value = 1 Then p4 = p4 + Check3.Caption + ","
If Check4.Value = 1 Then p4 = p4 + Check4.Caption + ","
aa = p1 + p2 + p3 + IIf(p4 = ",喜欢 ",",无爱好 ",p4)
Label4.Caption = Left(aa,Len(aa) - 1) + "。 "
Text1.SetFocus
End Sub
4.1 清单类控件
4.1 清单类控件
例 4.1设计一个简单小型的编辑器,用户可以在文本框中输入一
段文字,单击复选框和单选框,可以改变文本的字体,字
型和颜色
根据程序流程, 应该先对, 开始, 命令按钮 ( Command1) 编写单击事件
过程, 代码如下所示:
Private Sub Command1_Click()
Image1.Visible = False
Command1.Visible = False
Command2.Visible = False
Text1.Visible = True
Option1.Visible = True
Option2.Visible = True
Check1.Visible = True
Check2.Visible = True
End Sub
―退出, 命令按钮 ( Command2) 用于关闭应用程序, 因此使用 End方法,
其代码如下:
Private Sub Command2_Click()
End
End Sub
4.1 清单类控件
进入图 4.3所示的用户界面后, 若选中复选框 1使文本变成斜体,
则 Text1的 FontItalic属性设为 True;若选中复选框 2使文本变成
红色, 则设 Text1的前景色为红色 。 复选框单击事件过程如下:
Private Sub Check1_Click()
Text1.FontItalic = True
End Sub
Private Sub Check2_Click()
Text1.ForeColor = vbRed
End Sub
单选框决定文本的字体是宋体还是隶书, 如果选中单选框 1,则
文本字体为宋体;若选中单选框 2,则文本字体为隶书 。 其代码如下:
Private Sub Option1_Click()
Text1.FontName = ?宋体 ?
End Sub
Private Sub Option2_Click()
Text1.FontName = ?隶体 ?
End Sub
4.1 清单类控件
4.1 清单类控件
4.1.3 列表框与组合框
一, 用途
列表框控件( ListBox) 用于显示项目列表,用户可
从中选择一个或多个项目。如果项目总数超过了可显示的项
目数,VB会自动加上滚动条。
列表框有两种风格:标准和复选列表框。通过它的
Style属性来设置。如下图:
4.1 清单类控件
组合框控件 ( ComboBox) 将文本框和列表框的功能结合
在一起, 用户可以在列表中选择某项 ( 只能选取一项 ) 。 或
在编辑区域中直接输入文本内容来选定项目 。
组合框共三种风格:下拉式组合框, 简单组合框和下拉式列
表框 ( 见下图 ) 。
4.1 清单类控件
二、主要 属性
1,Style属性
该值用来指示控件的显示类型和行为 。 在运行时是只读
的 。 对于列表框控件或组合框控件都有 Style属性, 但它们的
含义是不同的 。
例如,在窗体上放置 2个列表框,将其 Style属性分别设
置为 0和 1;放置 3个组合框,将它们 Style属性分别设置为 0,1
和 2。
4.1 清单类控件
2,List,ListCount和 ListIndex属性
List,字符型数组,存放列表框的项目数据,下标是
从 0开始的。
例如,List(0)表示第一项( Listindex=0)的内容
列表框项目可在设计模式下一项一项输入。
ListIndex,为整型值,选中的项目的序号,如果列表
框可多选,则为最后一次选中项目的序号,没有项目选中时
为 -1。
ListCount,为整型值,表示项目的数量,ListCount-
1是最后一项的下标。
4.1 清单类控件
3,MultiSelect属性
用于指示是否能够在列表框控件中进行复选以及如何进行复
选, 在运行时是只读的 。 注意, 组合框控件无此属性 。
MultiSelect 属性设置值及含义
设置值 含 义
0 ( 缺省值 ) 不允许复选
1 简单复选 。 鼠标单击或按下空格键在列表中选中或取消选中项 。
箭头键移动焦点
2 扩展复选 。 按下 SHIFT 并单击鼠标将在以前选中项的基础上扩展
选择到当前选中项 。 按下 CTRL 并单击鼠标来在列表中选中或取
消选中项
4.1 清单类控件
4,Selected属性
该属性返回或设置列表框控件中的一个项目的选择状态 。
该属性是一个逻辑类型的数组, 数组元素个数与列表框中的项
目数相同, 其下标的变化范围与 List属性相同 。
例如,List1.Selected( 0) =True表示列表框 List1的第
一个项目被选中,此时 ListIndex的值设置为 0。 Selected属性
在设计时是不可用的,即无法在属性窗口中设置属性值。
5,Sorted属性
返回一个逻辑值, 当 Sorted属性为 True时列表框控件或
组合框控件的项目自动按 字母表顺序 ( 升序 ) 排序, 为 False
时项目按加入的先后顺序排列显示 。 该属性只能在设计时设
置, 不能在程序代码中设置 。
4.1 清单类控件
6,Text属性
对于组合框,( Combo1)
下拉式组合框与简单组合框 ( Style=0和 1),
Text属性返回编辑区域中的文本 。
下拉列表框, Text属性的返回当前被选中的项, 值总与
combo1.List( combo1.ListIndex) 的值相同 。
对于列表框, ( List1)
Text属性选中的文本, 如果列表框可多选, 则为最后一次
选中项目 。 Text属性值总与 List1.List( List1.ListIndex) 的
值相同 。
4.1 清单类控件
列表框、组合框各主要属性的值:
List1.List(List1.ListIndex)=―abc‖
ListCount = 6
ListIndex = 3 (下标从 0开始的 )
Selected(3) = True 其余为 False。
Sorted = False 没有排序。
Text = ―abc‖
Combo1.List(Combo1.ListIndex)=―abc‖
4.1 清单类控件
3 方法
1,AddItem方法
用于将项目添加到列表框控件或组合框控件 。
语法格式:
〈 对象名 〉,AddItem item [,index]
其中,item,为字符串表达式,表示要加入的项目。
Index:决定新增项目的位置,缺省,则添加在最后。
2,RemoveItem方法
用于从列表框控件或组合框控件中删除一项 。
语法格式:
〈 对象名 〉, RemoveItem index
对 index参数的规定同 AddItem方法。
4.1 清单类控件
例如,要删除列表框( List1)中所有选中的项目,可使
用下面的程序段:
i = 0
Do While i <= List1.ListCount - 1
If List1.Selected(i) = True Then
List1.RemoveItem I
else
i = i + 1
End If
loop
4.1 清单类控件
3,Clear方法
用于清除列表框控件或组合框控件中的所有项目 。
语法格式:
〈 对象名 〉, Clear
例如, 删除列表框 ( List1) 中所有项目, 可使用:
List1,Clear
4.1 清单类控件
4,事件
( 1) Click事件
当单击某一列表项目时, 将触发列表框与组合框控件的
Click事件 。 该事件发生时系统会自动改变列表框与组合框控
件的 ListIndex,Selected,Text等属性, 无需另行编写代码 。
( 2) DblClick事件
当双击某一列表项目时, 将触发列表框与简单组合框控件
的 DblClick事件 。
( 3) Change事件 ( 列表框没有此事件 )
当用户通过键盘输入改变下拉式组合框或简单组合框控
件的文本框部分的正文, 或者通过代码改变了 Text属性的设置
时, 将触发其 Change事件 。
【 例 4.4】 设计一个星座与性格的水晶球 。
4.2 图片类控件
VB中与图形有关的控件有:
?图片框( PictureBox)、图像框( Image)
窗体、图形框和图像框可以显示来自图形文件的图形
1,位图 (bitmap):位图通常以,bmp或,dib为文件扩展名 。
2,图标 (icon):以,ico为文件扩展名 。
3,元文件 (metafile),元文件的类型有两种, 分别是标准型
(,wmf) 和增强型 (,emf) 。
4,JPEG文件,JPEG是一种支持 8 位和 24 位颜色的压缩位
图格式 。 它是 Internet 上一种流行的文件格式 。
5,GIF文件,GIF是一种压缩位图格式。它可支持多达 256
种的颜色,是 Internet 上一种流行的文件格式。
4.2 图片类控件
4.2.1 图像框控件 ——Image控件 。
图像框比图形框占用更少的内存快。图像框内不能保存
其他控件。
Image控件,不是容器控件。
Image控件加载图片、删除图片、保存图片的方法:
与 PictureBox控件相同
Stretch属性:
设置为 False,图像框可自动改变大小以适应其中的图形。
设设置 True,图形可自动调整尺寸以适应图像框的大小。
4.2 图片类控件
4.2.2 图片框控件 ——PictureBox
主要作用:显示图片、也可作为其他控件的容器。
1、装入图形:
图形框对象,Picture = LoadPicture(―图形文件名, )
2、删除图形
图形框对象,Picture = LoadPicture( )
3.保存图片
使用 SavePicture语句, 其使用格式如下:
SavePicture [Object.]Picture|Image,FileName
注意:当 Autosize属性设置为 True时, 图形框能自动调整
大小与显示的图片匹配
【 例 4.4】 设计一个简单的, 图片缩放, 器。
4.2 图片类控件
① 在 Command1控件上双击鼠标左键, 调出代码窗口, 在 Command1_Click ()事件代码
窗口中输入以下代码 。
Private Sub Command1_Click()
Image1.Top = Image1.Top - 25
Image1.Left = Image1.Left - 25
Image1.Width = Image1.Width + 50
Image1.Height = Image1.Height + 50
End Sub
② 重复步骤 2,在 Command2_Click ()事件代码窗口中输入以下代码 。
Private Sub Command2_Click()
Image1.Width = Image1.Width - 50
Image1.Height = Image1.Height - 50
Image1.Top = Image1.Top + 25
Image1.Left = Image1.Left + 25
End Sub
4.2 图片类控件
【 例 4.6】 设计一个简单的, 看图学英文, 的少儿多媒体教学软
件 。
4.2 图片类控件
在 Picture 1控件上双击鼠标左键, 调出代码窗口, 选择 MouseMove事件,
MouseMove事件是指当鼠标在指定控件上移动时激活程序,
在 Picture 1_MouseMove()事件代码窗口中输入以下代码 。
Private Sub Picture 1_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "bear"
End Sub
③ 重复步骤 2,输入以下代码:
Private Sub Picture 2_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "monkey"
End Sub
Private Sub Picture 3_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "horse"
End Sub
Private Sub Picture 4_MouseMove(Button As Integer,Shift As Integer,
X As Single,Y As Single)
Label3.Caption = "tiger"
End Sub
4.2 图片类控件
4.3 计时器
1.用途
计时器控件( Timer)又称时钟、定时
器控件,用于 有规律地定时执行指定的工作,
常常用于编写不需要与用户进行交互就可直
接执行的代码,如计时、倒计时、动画等。
在程序运行阶段,时钟控件不可见。
4.3 计时器
2,属 性
( 1) Interval属性
取值范围在 0 ~ 64767, 单位:为 毫秒 ( 0.001秒 ), 表
示计时间隔 。 若将 Interval属性设置为 0或负数, 则计时器停止
工作 。
缺省设置为 0
( 2) Enabled属性
设置为 True,而且 Interval属性值大于 0,则计时器 开始
工作 ( 以 Interval属性值为间隔, 触发 Timer事件 ) 。
设置为 False可使时钟控件无效, 即计时器停止工作 。
缺省设置为 True
( 2) Enabled属性
4.3 计时器
4.3 计时器
3,方 法
Timer控件没有方法 。
4,事 件
时钟控件只有 Timer事件
当 Enabled属性值为 True且 Interval属性值大于 0时,
该事件以 Interval属性指定的时间间隔发生
常常将需要定时执行的操作放在 Timer事件 过程中
4.3 计时器
时钟控件的应用举例
例 4.7 利用计时器和图像控件设计一个简单的动画。
在 Timer1控件上双击鼠标左键, 调出代码窗口, Timer1_Timer ()事件过程中
输入以下代码 。
Private Sub Timer1_Timer()
Dim s As Integer
s = Int(Rnd() * (2 - 0 + 1)) + 0 ?利用 Rnd()产生 0,1和 2三个乱数
Select Case s
Case 0
Image0.Visible = True
Image1.Visible = False
Image2.Visible = False
Case 1
Image1.Visible = True
Image0.Visible = False
Image2.Visible = False
Case 2
Image2.Visible = True
Image1.Visible = False
Image0.Visible = False
End Select
End Sub
4.3 计时器
4.4 滚动条
1,用 途
滚动条控件( ScrollBar)分为水平滚动条
( HScrollbar)和垂直滚动条( VscrollBar)二种,通常附
在窗体上协助观察数据或确定位置,也可用作数据输入工具,
用来提供某一范围内的数值供用户选择。
4.4 滚动条
2,属性
(1) Value
滑块所处位置所代表的值。
(2) Max:最大值
-32,768~32,767
(3) Min:最小值
-32,768~32,767
(4) SmallChange
最小变动值,
单击箭头时移动的增量值。
(5) LargeChange
最大变动值,单击空白处时移动的增量值 。
4.4 滚动条
3.事件
( 1) Change事件
滚动条的 Change事件在移动滚动框或通过代码改变其
Value属性值时发生 。 单击滚动条两端的箭头或空白处将引
发 Change事件 。
( 2) Scroll事件
当滚动框被重新定位, 或按水平方向或垂直方向滚动时,
Scroll事件发生 。 拖动滑块时会触发 Scroll事件 。
Scroll事件与 Change事件的区别在于:当滚动条控件滚
动时 Scroll事件一直发生, 而 Change事件只是在滚动结束之
后才发生一次 。
4.4 滚动条
【 例 4.9】 计算年收入。设某公司职工 1996年人均年收入为 10000元,
要求在屏幕上显示出当人均年收入增长率不断变化时,从 1997年到 2100年
中的人均年收入。
编制代码如下:
Private Sub Form_Load()
HScroll1.Enabled = False
End Sub
此事件过程设置水平滚动条在垂直滚动条未改变前应该为无效状态 。
Private Sub VScroll1_Change()
Label1.Caption = Str$(VScroll1.Value) + ?年 ?
HScroll1.Enabled = True
End Sub
执行此事件过程, 通过改变垂直滚动条位置选择年份并在标签 1上显示 。
当用户改变水平滚动条的值时, 执行以下事件过程:
Private Sub HScroll1_Change()
s = 1
n = VScroll1.Value – 1996
r = HScroll1.Value / 100
s1 = s ? (1 + r) ^ n
Label2.Caption = ?年收入增长率,? + Str$(r) + ?%?
Text1.Text = ?人均年收入,? + Str$(s1) + ?万元 ?
End Sub
4.4 滚动条