第六章 常用控件
? 6.1 控件简述
? 6.2 基本控件
? 6.3 选择性控件
? 6.4 时钟控件
? 6.5 对话框
? 6.6 高级控件
? 6.7 鼠标器和键盘
? 6.8 综合应用举例
6.1 控件简述
? 6.1.1 控件的分类
– 内部控件, 标准控件,出现在工具箱中
– ActiveX控件, 扩展名为,OCX
– 可插入对象
? 6.1.2 在窗体上添加和删除控件
– 在窗体上直接绘制
– 双击控件
? 6.1.3 编辑控件
– 选择控件
– 移动控件
– 调整大小
– 复制控件
6.1.4 控件的名称
– 控件被创建后,有一个默认的名称,如
command1,command2等,在实际的程序设
计过程中,为提高程序的可读性,往往不使用系统
提供的默认名称,而使用一些有一定意义的名称,
通常用 3个小写字母作为名称的前缀,表示该控件
的类型 ;后面再用有意义的英语单词组合或缩写
来表示控件的用途,
常用控件名称前缀
控件 前缀 举例
Form frm frmCale
Label lbl lblOptions
Text txt txtName
Command Button cmd,btn cmdOK,btnEnd
Check Box chk chkStyle
Option Button opt optColor
Frame fra fraOptions
ComboBox cbo cboPlayer
HScrollBar hsb hsbTemp
VScrollBar vsb vsbVolumn
Timer tmr tmrHour
ListBox lst lstNumbers
?6.1.5 设置和获取控件属性值
– 设计时:属性窗口设置
– 运行时:控件,属性
?form1.caption =, 成绩管理系统” ‘设置
?text1.text = form1.caption ‘ 获取
?6.1.6 在工程中使用 ActiveX控件
– ActiveX控件需添加到工具箱中才能使用
– 执行“工程”菜单下的“部件”命令可选择
控件
6.1.7 焦点和 Tab顺序
?焦点,指控件对象接受鼠标或键盘输入的能力。当某一控件对象具
有焦点时,就可以接受用户的输入操作,并且只有具有焦点的控件
对象才能接受用户由鼠标和键盘的输入。
当某一控件对象获得焦点时,将触发该控件对象的 GetFocus事
件,当失去焦点时,将触发 LostFocus事件。
注意,
1.不是所有的控件都能接受焦点,如 Timer,shape。
2.窗体内的所有控件都不能接受焦点时,窗体才能接受焦点。
3.某一控件获得焦点时,其它控件将失去焦点。
4.只有当控件的 Enable和 Visible属性均为 True时,控件才能接
受焦点 。
控件获得焦点的途径,
1,直接操作:按 Tab键,快捷键,鼠标点击
2,程序代码,调用 SetFocus方法。如 text1.SetFocus
?Tab顺序
–Tab顺序是指程序运行中用户按下 Tab键时,
焦点在控件上移动的顺序
通常 Tab顺序就是控件对象建立的顺序
Tab顺序的调整:调整控件的 TabIndex属性值
TabIndex属性值决定控件的 Tab键顺序
6.2 基本控件
? 6.2.1 窗体
? 6.2.2 标签
? 6.2.3 文本框
? 6.2.4 命令按钮
? 6.2.1 窗体 (Form)
? 6.2.2 标签 (Label):主要用于显示一小段文本,通常用来标注本
身不具有 Caption属性的控件。
– 属性,
外观,BackColor,ForeColor,BackStyle
字体,FontName,FontSize,FontBold,FontItalic等
位置,Height,Left,Top,Width
其它常用属性,
Caption 标题
Alignment 0-标题靠左 1-标题靠右 2 - 标题居中
Autosize True/ False -是否自动调整大小
BorderStyle 0 - 标签无边框 1 - 标签有边框
BackStyle 0 - 标签覆盖背景 1 - 标签透明
– 事件,click,dblclick 标签很少用来触发事件。
6.2.3 文本框( TextBox)
? 属性
– Text
– MaxLength 设置文本框中允许输入的最大字符数
– MultiLine True - 文本框中允许输入多行文字
– PasswordChar 默认值为空。非空时一般填,*”号
– ScrollBars 0:无滚动条 1:水平 2:垂直 3:水平和垂直
– SelLength 文本框中选中的字符个数,运行时使用
– SelStart 文本框中选中的字符中第一个字符的位置
– SelText 文本框中当前选中的文字内容
– Locked True /False -文本框内容能否编辑
6.2.3 文本框( TextBox)
? 事件
– Change
– GetFocus,LostFocus
– KeyPress
? 方法
– SetFocus
e.g,6-2 6-3
6.2.4 命令按钮( Command Button)
? 属性
– Caption
– Cancel:该属性设为 True时,按键盘上的 Esc键与单击
该命令作用相同。在一个窗体中,只允许有一个按钮的
Cancel属性设为 True
– Default:该属性被设置 True时,若窗体中所有的按钮
都不具有焦点,则按回车键与单击该命令的按钮作用相
同。在一个窗体中,只允许有一个命令按钮的 Default属
性设为 True
? 事件
– Click
e.g,6-4
6.3 选择性控件
? 6.3.1 单选钮和检查框
? 6.3.2 框架
? 6.3.3 列表框
? 6.3.4 组合框
? 6.3.5 滚动条
6.3.1 单选钮 (OptionButton)和检查框
(CheckBox)
单选钮和检查框常用来表示, 选中, 和, 不选, 两种状
态,用户可以通过改变它们的状态而执行不同的操作,单选钮用
,●,,而检查框用, √”
?主要属性,Caption,Value
– 单选钮 Value,True - 单选钮被选中
False-单选钮未被选中
– 检查框 Value, 0 - 检查框未被选中
1 - 检查框被选中
2 - 检查框被禁止操作,显示灰色
?主要事件,Click
eg,6- 5 6- 6
6.3.2 框架 (Frame)
– Frame 控件为控件提供可标识的分组。 Frame 可以在
功能上进一步分割一个窗体-例如,把 OptionButton
控件分成几组。
– 为了将控件分组,首先需要绘制 Frame 控件,然后绘
制 Frame 里面的控件。这样就可以把框架和里面的控
件同时移动。如果在 Frame 外部绘制了一个控件并试
图把它移到框架内部,那么控件将在 Frame 的上部,
这时需分别移动 Frame 和控件。
– 常用属性,Caption
6.3.3 列表框 (ListBox)
– ListBox 控件显示项目列表,从其中可以选择一项或多
项。如果项目总数超过了可显示的项目数,就自动在
ListBox 控件上添加滚动条。
– 如果未选定项目,则 ListIndex 属性值是 -1。列表的第
一项是 ListIndex 0,ListCount 属性值总是比最大的
ListIndex 值大 1。
– 使用 AddItem 或者 RemoveItem 方法可以添加或者
删除 ListBox 控件中的项目。对 List,ListCount 和
ListIndex 属性进行设置就可以访问 ListBox 中的项目。
也可以在设计时使用 List 属性在列表中增加项目。
6.3.3 列表框 (ListBox)
属性名 属性值 说明
Cloummns 0(默认 ) 项目安排在一列中、且 ListBox 竖直滚动
>0 项目安排在多个列中,先填第一列,再填第二列,
等等。 ListBox 水平滚动并显示指定数目的列
List 字符串数组 每个数组元素对应一个项目
ListCount 整型数据 列表框项目数
ListIndex 当前被用户选中的项目序号,即对应的 List数组的下标,
若无选中项目,值为 -1
MultiSelect 0(默认 ) 只允许单选
1 简单多项选择
2 扩展多项选择
Selected 逻辑型数组 分别对应列表框中的每一项,若某数组元素的值为
True,则表示对应的项目被选中,否则表示未被选中
Sorted True 项目排序
False 项目不排序
Text 字符型数据 返回当前被选中的项目内容
6.3.3 列表框 (ListBox)
? 事件
– Click,DblClick 一般不用
? 方法
几个主要方法主要用于在程序运行期间修改列表框的内容
– AddItem
?格式, object.AddItem item,index
?index,0~ ListCount-1.每插入一项 ListCount自动加 1
– RemoveItem
?格式,objiect.RemoveItem Index
?该方法将指定位置的项目删除,同时 ListCount自动减 1
– Clear
?清除所有项目,ListCount置 0
eg,6-8
6.3.4 组合框 (ComboBox)
ComboBox 控件将 TextBox 控件和 ListBox 控件的特性结合在一
起-既可以在控件的文本框部分输入信息,也可以在控件的列表
框部分选择一项。
属性,
Style 0 (缺省值)下拉式组合框。包括一个下拉式列表和一
个文本框。可以从列表选择或在文本框中输入。
1 简单组合框。包括一个文本框和一个不能下拉的列表。
可以从列表中选择或在文本框中输入。简单 组合框的
大小包括编辑和列表部分。按缺省规定,简单组合框
的大小调整在没有任何列表显示的状态。增加
Height 属性值可显示列表的更多部分。
2 下拉式列表。这种样式仅允许从下拉式列表中选择。
Text 用户所选内容 或 直接输入的文本
6.3.4 组合框 (ComboBox)
? 事件
Style=0,时可响应 Click,DblClick,Change,DropDown
Style=1,时可响应 Click,DblClick,Change
Style=2,时可响应 Click,DropDown
? 方法
AddItem
RemoveItem
Clear
6.3.5 滚动条
? 滚动条包括水平滚动条 (HScrollBar)和垂直滚动条 (VScrollBar)
? 属性
? 事件
– Scroll 拖动滚动块时触发
– Change 滚动块被移到新位置后,或 Value值发生变化时触发
? eg,6- 9
属性名 属性值 说明
Value Min~ Max之间的值以定位滚动

Max -32768~ 32767 Value最大值
Min Value最小值
LargeChan
ge
返回和设置当用户单击滚动条和
滚动箭头之间的区域时,滚动条
控件的 Value 属性值的改变量
SmallChang
e
返回或设置当用户单击滚动箭头
时,滚动条控件的 Value 属性
值的改变量。
6.4 时钟控件 (Timer)
? 通过引发 Timer 事件,Timer 控件可以有规律地隔一段时间执
行一次代码。 Timer 控件用于背景进程中,它是不可见的。
? Timer 控件的 Enabled 属性决定该控件是否对时间的推移做响
应。将 Enabled 设置为 False 会关闭 Timer 控件,设置为
True 则打开它。当 Timer 控件置为有效时,倒计时总是从其
Interval 属性的设置值开始。
? 属性,Interval
– 返回或设置对 Timer 控件的计时事件各调用间的毫秒数。有
效值,1~ 65,535 设置的时间间隔(以毫秒计),在
Timer 控件 Enabled 属性设置为 True 时开始有效,例如,
10,000 毫秒等于 10 秒。最大值为 65,535 毫秒,等于
1 分钟多一些。
? 事件,Timer
– 每当经过一个 Interval属性所设定的时间间隔,就触发一次
Timer事件
6.5 对话框 (CommonDialog)
? CommonDialog 控件提供一组标准的操作对话框,进行诸如打
开和保存文件,设置打印选项,以及选择颜色和字体等操作。通
过运行 Windows 帮助引擎控件还能显示帮助。
? 在应用程序中要使用 CommonDialog 控件,可将其添加到窗体
中并设置其属性。控件所显示的对话框由控件的方法确定。在运
行时,当相应的方法被调用时,将显示一个对话框或是执行帮助
引擎;在设计时,CommonDialog 控件是以图标的形式显示在
窗体中。该图标的大小不能改变。
? 使用指定的方法,CommonDialog 控件能够显示下列对话。
方法 所显示的对话框
ShowOpen, 打开”对话框
ShowSave, 另存为”对话框
ShowColor, 颜色”对话框
ShowFont, 字体”对话框
ShowPrinter, 打印”或“打印选项”对话框
ShowHelp 调用 Windows 帮助引擎
6.5 对话框 (CommonDialog)
? Action属性,返回或设置被显示的对话框的类型。在设计时无效。
– Action 属性是为了与 Visual Basic 早期版本兼容而提供的。如需
附加功能,可使用下列新方法,ShowColor,ShowFont,
ShowHelp,ShowOpen,ShowPrinter 和 ShowSave。
– 语法 object.Action [= value]
– 用于 value 的设置值是,
– 0 没有操作。
– 1 显示“打开”对话框。
– 2 显示“另存为”对话框。
– 3 显示“颜色”对话框。
– 4 显示“字体”对话框。
– 5 显示“打印”对话框。
– 6 运行 WINHLP32.EXE。
? DialogTitle属性,设置对话框标题
? CancelError属性:当该属性为 True时,用户按下“取消”按钮后显示
一个错误信息,否则不显示
6.5 对话框 (CommonDialog)
?方法
–ShowOpen
–ShowSave
–ShowColor
–ShowFont
–ShowPrinter
–ShowHelp
?CommonDialog.ShowOpen
属性名 类型 说明
FileNam
e
Strin
g
设置或返回文件名 (含路径 )
FileTitle Strin
g
设置或返回文件名 (不含路径 )
Filter Strin
g
确定文件列表框中所显示文件的类型
FilterInd
ex
Int 设置或返回在文件列表框中所选文件类
型的序号
InitDir Strin
g
制定初始目录,默认为当前目录
?CommonDialog.ShowSave
– DefaultExt属性, 表示所保存文件的缺省扩展名
– 其它属性同 ShowOpen
?CommonDialog.ShowColor
– 属性 Color,设置或返回用户指定的颜色
?CommonDialog.ShowFont
属性名 属性值 说明
Flags 0 (cdlCFEffects) 在字体对话框中显示删
除线和下划线检查框以
及颜色组合框
该属
性必
须在
激活
字体
对话
框之
前设

1 (cdlCFScreenFonts) 显示屏幕字体
2 (cdlCFPrinterFonts) 显示打印机字体
3 (cdlCFBoth) 显示屏幕字体和打印机
字体
FontName String 选定字体名称
FontSize Int 选定字体大小
FontBold Boolean 选定字体是否加粗
FontItalic Boolean 选定字体是否倾斜
FontUnderline Boolean 选定字体是否加下划线
FontStrikethru Boolean 选定字体是否加删除线
?CommonDialog.ShowPrinter
– 属性
?Copies 指定打印份数
?FromPage 指定打印起始页号
?ToPage 指定打印终止页号
6.5.2 自定义对话框
自定义对话框是用户自己设计的一个窗口,窗口中放置了一些
用于交互信息的控件
属性名 属性值 说明
BordStyle 1 防止对话框在运行是被改变大小
ControlBox False 取消控制菜单
MaxButton False 取消最小化按钮
MinButton False 取消最大化按钮
6.5.2 自定义对话框
要显示对话框窗体时,调用窗体的 Show方法,调用时参数不同,
窗体状态不同
?模式对话框。在退出对话框之前,只能对对话框进行操作
– 语法, object.Show vbModal
?无模式对话框。可在不退出对话框的同时操作程序的其它部

– 语法, object.Show
6.6 高级控件
?6.6.1 SSTab控件
?6.6.2 ProgressBar控件
?6.6.3 Slider控件
?6.6.4 UpDown控件
?6.6.5 Animation控件
?6.6.1 SSTab控件
控件存在于 Microsoft Tabbed Dialog Control 6.0 部件中
?6.6.2 ProgressBar控件
控件存在于 Microsoft Windows Common Control 6.0 部
件中
属性名 属性

说明
Style 0 Win3.1风格,活动选项卡的字体为粗体显示
1 Win95风格,每个选项卡的宽度调整到其标题文本
的长度
Tabs Int 设定选项卡的总数
TabsPerR
ow
Int 设定每一行选项卡的数目
Rows Int 设定选项卡的总行数
Tab Int 设定活动选项卡
属性名 属性值 说明
Max Int 指定进度条的进程最大位置的值
Min Int 指定进度条的进程最小位置的值
Value Int 指定进度条的进程当前位置的值
?6.6.1 SSTab控件
控件存在于 Microsoft Tabbed Dialog Control 6.0 部件中
属性名 属性

说明
Style 0 Win3.1风格,活动选项卡的字体为粗体显

1 Win95风格,每个选项卡的宽度调整到其
标题文本的长度
Tabs Int 设定选项卡的总数
TabsPer
Row
Int 设定每一行选项卡的数目
Rows Int 设定选项卡的总行数
Tab Int 设定活动选项卡
? 6.6.4 UpDown控件
控件存在于 Microsoft Windows Common Control-2 6.0 部
件中
主要事件, UpClick,DownClick
? 6.6.5 Animation控件
控件存在于 Microsoft Windows Common Control-2 6.0 部
件中
功能,播放无声的 AVI视频文件
主要方法, Open,Play,Stop,Close
6.7 鼠标器和键盘
? 6.7.1 鼠标器
事件, Click,DblClick,MouseDown,MouseUp,MouseMove
语法,
Private Sub object_MouseDown([index As
Integer,]button As Integer,shift As Integer,x As
Single,y As Single)
Private Sub object_MouseUp([index As
Integer,]button As Integer,shift As Integer,x As
Single,y As Single)
Private Sub object_MouseMove([index As Integer,]
button As Integer,shift As Integer,x As Single,y
As Single)
6.7 鼠标器和键盘
eg,6-13
参数 参数值 说明
Button 1 (vbLeftButton) 左键被按下
2 (vbRightButton) 右键被按下
4 (vbMiddleButton) 中间被按下
Shift 1 (vbShiftMask) 同时按下 Shift键
2 (vbCtrlMask) 同时按下 Ctrl键
4 (vbAltMask) 同时按下 Alt键
X,Y Single 当前鼠标光标所在位置的坐标
6.7 鼠标器和键盘
? 6.7.2 键盘
– 事件,
KeyPress - 用户按下并释放一个能产生 ASCII码的键时触发
KeyUp - 用户按下任一键时触发
KeyDown - 用户按下任一键时触发
语法,
Private Sub object_KeyPress([index As Integer,]keyascii As
Integer)
Private Sub object_KeyDown([index As Integer,]keycode
As Integer,shift As Integer)
Private Sub object_KeyUp([index As Integer,]keycode As
Integer,shift As Integer)
6.7 鼠标器和键盘
eg,6- 14
参数 参数值 说明
Keyas
cii
ASCII码值 左键被按下
Keyco
de
键盘扫描码 右键被按下
Shift 1 (vbShiftMask) 同时按下 Shift键
2 (vbCtrlMask) 同时按下 Ctrl键
4 (vbAltMask) 同时按下 Alt键
6.8 综合应用程序举例
?设计一个“通讯录”程序,当用户在下拉列表框
中选择某一人名后,在“电话号码”文本框中显
示出对应的电话号码,当用户选择或取消“单位”
和“住址”复选框后,将打开或关闭“工作单位”
或“家庭住址”文本框
?程序,6-15