第7章 Visual Basic控件及其应用

第7章 Visual Basic控件及其应用
第7章 Visual Basic控件及其应用

第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方法:

该方法用于清除列表框中所有的列表项。其语法格式如下:

列表框名.Clear

3.列表框的应用(例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事件实现列表框的初始化。过程中用Additem 方法将过程中的8个省市名称添加到列表框1(List1)中,使得列表框中列出全部省市的名称。

列表框1(List1)的双击事件过程代码:

过程开始定义了两个变量ind和city分别为整型变量和字符串变量。语句Ind=List1.ListIndex 将List1列表框中被选中的下标号赋给ind变量,例如,选中“”,ind为1(下标序号从0开始,“”位于第2项)。语句city=List1.Text 将列表框中被选中的容(省市的名称)存放到变量city中。第5条语句是将ind所对应的列表项从List1中删除,第6条语句是将city中的容添加到列表框2(List2)中。

7.2.2 组合框

组合框(ComboBox)控件兼有文本框和列表框两者的功能,既可以在控件

的文本狂部分输入信息,也可以在控件的列表框部分选择一项。

1.组合框的常用属性

组合框(ComboBox)控件的属性与列表框基本相同,另外增加了一些与文本框相关的属性。

(1)Style属性:

该属性用于设置组合框的外观风格,其取值如下表所示:

值描述

0(默认值)下拉组合框,用户可以单击向下按钮在列表框中选择项

目,还可以在文本框中输入新项目。

1 简单组合框(列表框不能被收起和拉下),用户可以在列

表中选择项目,还可以在文本框中输入新项目。

2 下拉列表,仅允许从下拉列表中选择项目。

(2)Text属性:

该属性用于存放用户选中的列表项容或通过键盘输入的容。该属性在设计时无效,在运行时只读。

由于组合框是列表框和文本框的组合。因此,组合框支持列表框的属性,同时也支持部分文本框的属性,当祝贺狂的Locked属性设置为True时,则祝贺狂将失去键盘输入的能力,同时也不能对组合框的列表项进行选择操作。

2.组合框的事件和方法

(1)组合框的事件

组合框能响应的事件有Change、Click、DblClick等

(2)组合框的方法

组合框支持的方法与列表框相同,用法也一样。

3.组合框的应用(例7.5)

【例7.5】设计一个程序,要求程序运行后,在组合框中显示若干城市的名称。选中某个城市后,将其名称显示在对应于“选中的城市”的标签中。在程序运行中,可以项组合框中添加新的城市,也可以删除选中的城市。

程序运行后,窗体外观如图7-9所示。

图7-9

窗体及控件的属性见下表。

【例7.5】的对象属性设置表

对象属性设置窗体(名称)Name Form1

组合框(名称)Name Combo1 Style 1

标签1 (名称)Name Label1 Caption 所有城市

标签1 (名称)Name Label2 Caption 选中的城市

标签1 (名称)Name Label3 Caption 置空BorderStyle 1

命令按钮1 (名称)Name Command1 Caption 添加

命令按钮2 (名称)Name Command2 Caption 删除

命令按钮3 (名称)Name Command3 Caption 退出

首先在Form1_Load中把一些城市添加到组合框中,程序代码如下:

当选择组合框中的某个城市时,触发组合框的单击事件,将组合框中当前所选择的城市(即Combo1.Text)显示在标签中,相应的程序代码如下:

如果要在组合框中添加新的城市名称,需要先在组合框中输入一个新的城市名,再单击“添加”按钮,执行如下事件过程,把新的城市添加到组合框中。

实际上,使用Combo1.AddItem Combo1.Text命令就可以把组合框当前显示的文本添加到组合框中。但是,在程序中必须考虑三种不同的情况:

(1)Combo1.Text中的容(即新添加的城市)已经存在于现有的城市列表中;(2)Combo1.Text中的容为空;

(3)Combo1.Text中的容不存在于现有的城市列表中。

在编写程序时,必须区别这三种情况,分别进行处理。对于前两种情况,都不应该把ComBo1.Text中的容添加到组合框中,即不执行ComBo1.AddItem ComBo1.Text 命令,否则会在组合框中添加许多重复或空白的列表项。只有第三种情况,才需要执行添加操作。

程序中,首先设置一个标识变量Flag,并设其初始值为0,用来表明输入的城市是否与组合框中现有的城市名相同。

随后,判断组合框的ComBo1.Text是否为空。如果这一项为空,表明没有输入城市名,程序给出提示,如图7-10所示。这样可避免把一个空的项目添加到组合框中。

图7-10

程序在For循环中一次判断组合框的各个列表项是否与ComBo1.Text中的容相同,如果存在这样的项目,将变量Flag的值设置为1.组合框中所有的项目检查完后,若Flag的值仍为0,表明组合框中不存在与ComBo1.Text相同的容。此时,可以将ComBo1.Text中容添加到组合框中。

单击“删除”按钮,使用组合框控件的RemoveItem方法将选中的项目从组合框中删除,程序代码如下:

相关主题
相关文档
最新文档