第7章 Visual Basic控件及其应用VB是一种可视化的程序设计语言,即对于图形界面的设计,不需要编写大量的代码,只需选用并为每个对象设置属性。
因此,控件在VB程序设计中扮演这及其重要的角色。
VB 控件可分为标准控件、ActiveX控件和可插入对象3类,在第3章中已介绍了标签、文本框和命令按钮3种控件,本章将进一步介绍其他常用控件。
学习目标:●单选按钮、复选按钮、列表框的设置和使用●计时器、图片框和滚动条的设置和使用。
●通用对话框的设置和使用。
7.1 单选按钮、复选按钮及框架在实际编程中,有时会遇到一些开关或功能选项要求用户做出选择,或要求用户在一个小围对某些参数做出选择等。
为此,VB提供了单选按钮、复选按钮及框架来实现上述功能。
7.1.1 单选按钮单选按钮(OptionButton)控件也称为选项按钮,常被成组选用,用于实现多选一的情况。
在一组单选按钮中,仅有一个单选按钮会被选中(出现黑点)。
选中某项后,该组中的其他单选按钮均处于未选中状态,这是单选按钮与复选按钮的主要区别,也是单选按钮名称的由来。
1.单选按钮的常用属性(1)Value属性Value属性用于返回或设置单选按钮是否有效的选中状态,其取值为True或False。
若属性值为True,则表示该单选按钮处于被选中状态;若为False,则处于未选中状态。
运行时,可以通过该属性检查单选按钮的选中状态,还可以通过赋值语句修改Value属性值,以改变单选按钮的选中状态。
(2)Enabled属性Enabled属性用于设置单选按钮是否有效(可操作))。
属性值为True表示有效,为False 为无效,单选按钮禁止使用并显示为灰色。
(3)Style属性Style属性用于设置单选按钮的样式,其值有0和1两种。
若设置为0,则为标准样式(默认值);若设置为1,则为图形化的单选按钮,此时可在单选按钮上同时显示文字和图像,这一点类似于图形化命令按钮。
(4)Picture属性Picture属性用于设置单选按钮要显示的图像。
该属性只有在Style属性值为1时有效。
(5)Caption属性Caption属性用于设置单选按钮旁的说明文字。
2.单选按钮事件和方法单选按钮能响应的事件有Click、GotFocus、MouseMove、MouseDown、MouseUp、KeyDown、KeyUp和KeyPress。
实际编程中最常用的事件是Click事件。
单选按钮支持的方法较少,常用的有SetFocus、Refresh和Move。
3.单选按钮应用(例7.1)【例7.1】利用单选按钮控制文本的对齐方式,程序运行界面如图7-1所示。
设计步骤如下:(1)创建新工程,在窗体上添加1个文本框Text1和3个单选按钮控件Option1~Option3。
将Option控件的Caption属性设置为“左对齐”、“居中对齐”和“右对齐”。
将Text1控件的字体(Font)属性设置为“楷体_GB2312”、字形为“粗体”、字号大小为“小三”。
(2)编写3个单选按钮的单击(Click)事件代码。
如图7-2所示(3)编写窗体Form1的装载(Load)事件。
如图7-2所示。
7.1.2 框架框架(Frame)控件有时也称为容器控件,在其部的控件可以随框架一起移动,并且受到框架控件某些属性(如Visible和Enabled)的控制。
框架常与单选按钮配合使用,用于给单选按钮分组。
当不使用框架时,窗体上所有单选按钮将被视为同一组,利用框架可以创建新的按钮组。
使用时应首先添加框架,然后在该框架上绘制单选按钮,即可形成新的按钮组。
1.框架的常用属性框架是一种辅助性控件,功能较单一,因此属性较少。
常用属性主要有以下两种:(1)BorderStyle属性BorderStyle属性决定框架是否有边线,取值为1或0.若该属性设置为0,则框架无边线;若设置为1(默认值),则有凹陷的单边线。
(2)Caption属性Caption属性用于设置框架上显示的标题。
若将该属性设置为空,则框架呈现封闭矩形。
2.框架的应用(例7.2)【例7.2】设计一个程序,用户界面上有两组单选按钮。
一组用来改变文本框字体,一组用来改变文本框的字体大小。
用户界面设计如图7-3所示。
图7-3 使用框架产生两组单选按钮设计步骤如下:(1)创建新工程,在窗体上添加1个文本框Text1,2个框架控件Frame1和Frame2。
在Frame1中绘出单选按钮Option1~Option4(用于选择字体)。
在Frame2中绘出单选按钮Option5~Option8(用于选择字号)。
(2)设置控件属性值。
如图7-3所示。
(3)编写程序代码:如图7-4所示。
图7-4 程序代码7.1.3 复选框复选框(CheckBox)控件相当于一个开关,用来表明选定(On)或者未选定(Off)两种状态。
当复选框被选定时,复选框出现个对号“√”。
单选按钮只能在多项选择中选取其中的一项,若遇到需要同时选择多项的情况,可以采用复选框控件。
1.复选框的常用属性(1)Value属性:用于返回或设置复选框控件的状态。
给属性在设计和运行时均可设置。
,在程序过该属性可获得复选框的状态,其值为以下3种之一。
●0-Unchecked:复选框未被选中。
●1-Checked:复选框被选中。
●2-Grayed:复选框处于半选状态。
(2)Caption属性:用于设置出现在复选框旁边的文字。
(3)Style属性和Picture属性:与单选按钮功能相同。
2.复选框的事件和方法复选框能响应的事件主要有Click、GotFocus、LostFocus、MouseMove、MouseDown、MouseUp、KeyDown、KeyUp和KeyPress。
实际编程中最常用的事件是Click事件。
3.复选框的应用(例7.3)一般情况下,复选框总是成组出现,用户可以从中选择一个或多个选项。
【例7.3】设计一个个人资料输入程序,使用单选按钮组选择性别与民族,使用复选框选择个人爱好,用户单击“确定”按钮后,在信息对话框中显示个人资料信息。
程序运行界面如图7-5所示。
图7-5 复选框的使用编写程序代码如图7-6所示:图7-6 程序代码7.2 列表框与组合框列表框(ListBox)控件和组合框(ComboBox)控件是Windows应用程序常用的控件,主要用于提供一些可供选择的列表项目。
在列表框中,任何时候都能看到多个选项,而在组合框中,通常只能看到一个选项,用鼠标单击其右侧的下拉按钮才能看到多项列表。
列表框采用工具箱中的工具绘制,组合框采用工具绘制。
7.2.1 列表框列表框常用来显示一个项目的列表,用户可从中选择一个选项或多个选项。
如果项目总数超过了列表框的可显示区域,列表框会自动出现滚动条,如图7-所示,这样方便用户以滚动的方式来选择列表项。
图7- 7列表框示意图1.列表框的常用属性(1)Columnsshux属性:指定列表框中的课件列数,默认值为0,这时列表框中不允许显示多列,当该属性值大于或等于1时,列表框中能显示多列。
(2)List属性:该属性是字符串数组。
每个数组元素都是列表框中的一个列表项。
使用该属性能够方便地访问列表框中的项目,例如,有如下语句:Rec1=ListBox1.List(2)该语句表示把列表框ListBox1的第3个元素的容赋给字符串变量Rec1。
List属性既可以在属性栏中设定,也可以由程序语句设置。
(3)ListIndex属性:程序运行时,可以使用ListIndex属性判断列表框中哪个项目被选中。
ListIndex属性用于设置和返回被选中的选项在List数组中的下标序号。
例如,在列表框List1中选中第2项,即List1.List数组的第2项,其ListIndex=1(列表框中的项目下标从0开始)。
如果用户没有从列表框中选择项目,则ListIndex=-1。
(4)ListCount属性:该属性经常与List属性一起使用,表示列表框中有多少个列表项。
(5)Text属性:该属性用于返回被选中列表项的容。
该属性既可以在属性栏中设定,也可以由程序语句设置。
(6)Selected属性:该属性用于返回和设置列表框列表项的选择状态,其属性值为True或False。
表示响应的列表项是否被用户选中,该属性只能在程序中设置。
其语句格式为:列表框名.Selected<列表项序列号>=True |False利用该语句可以选择指定的列表项或取消已选择的列表项。
(7)MultiSelect属性:该属性确定列表框中是否允许选择多项。
其值为0时,表示一次只能选择一项,不能选择多项。
其值为1时,表示允许选择列表框中多个项目,每用鼠标单击一个项目,则该项目被选中。
其值为2时,表示可以选择列表框中否个围的的项目,及可以用在按住【Shift】键的同时单击鼠标选择一组连续排列的项目,或按住【Ctrl】键的同时单击鼠标选择一组不连续排列的项目。
2.列表框的事件和方法(1)列表框常用事件:●DblClick●Click(2)列表框常用方法:AddItem、RemoveItem、Clear●AddItem方法:该方法用于在运行期间向列表框增加一个列表项,其语法格式如下:列表框名.AddItem 要增加的列表项[ ,列表索引号]其中,“列表索引号”是从0开始的顺序号,标明新增列表项添加到列表框中的位置。
若省略该参数,则新增的列表项放在列表框的末尾。
列表项索引号对应于列表框的ListIndex属性,可以通过列表框的ListIndex属性确定所选择的项目。
例如,若要在列表框中第2项位置插入以新列表项,容为“服装部”,语句应为:List1.AddItem “服装部” , 1装入列表项容的语句通常可放在窗体的Load事件过程中完成。
●RemoveItem方法:该方法用于删除列表框中指定的列表项,其语法格式如下:列表框名.RemoveItem 列表项索引号例如,删除列表框List1中的第3项的语句为:List1.RemoveItem 2●Clear方法:该方法用于清除列表框中所有的列表项。
其语法格式如下:列表框名.Clear3.列表框的应用(例7.4)【例7.4】设计一个程序,运行时的窗体如图7-8所示。
窗体中包含两个列表框。
左侧列表框中列出若干省市的名称。
当双击其中的某个省市名称时,这个省市从左侧的列表框中消失,同时出现在右侧的列表框中。
其中,左侧列表框中的省市名称是在程序开始运行时添加到列表框中的。
图7-8对象属性设置窗体Name(名称)Form1 列表框1 Name(名称)List1 列表框2 Name(名称)List2命令按钮Name(名称)Command1 Caption 退出标签1 Name(名称)Label1 Caption 全部省市标签2 Name(名称)Label2 Caption 选中的省市Form_Load事件过程的代码如下:以上过程利用窗体的Load事件实现列表框的初始化。