VisualBasic控件的使用二
使用 CheckBox 控件
选定 CheckBox 控件时,这个控件将显示选定标记。通常用此控件提供Yes/No 或 True/False 选项。可用分组的 CheckBox 控件显示多个选项,用户可从中选择一个或多个选项。
CheckBox 控件与 OptionButton 控件的相同之处在于,每个都是用来指示用户所作的选择。不同之处在于,对于一组 OptionButton ,一次只能选定其中的一个,而对 CheckBox 控件,则可选定任意数目的复选框。
详细信息 关于 CheckBox 控件的简单示例,请参阅第三章“窗体,控件和菜单”中的“用复选框选择单个选项”。
Value 属性
CheckBox 控件的 Value 属性指示复选框处于选定、未选定或禁止状态(暗淡的)中的哪一种。选定时,value设置值为 1。例如:
用户单击 CheckBox 控件指定选定或未选定状态,然后可检测控件状态并根据此信息编写应用程序以执行某些操作。
缺省时, CheckBox 控件设置为 vbUnchecked。若要预先在一列复选框中选定若干复选框,则应在 Form_Load 或 Form_Initialize 过程中将 Value 属性设置为 vbChecked。
可将 Value 属性设置为 vbGrayed 以禁用复选框。例如,有时可能希望在满足某条件之前禁用复选框。
Click 事件
无论何时单击 CheckBox 控件都将触发 Click 事件,然后编写应用程序,根据复选框的状态执行某些操作。在下例中,每次单击 CheckBox 控件时都将改变其 Caption 属性以指示选定或未选定状态。
Private Sub Check1_Click()
If Check1.Value = vbChecked Then
Check1.Caption = "Checked"
ElseIf Check1.Value = vbUnchecked Then
Check1.Caption = "Unchecked"
End If
End Sub
注意 如果试图双击 CheckBox 控件,则将双击当作两次单击,而且分别处理每次单击;这就是说,CheckBox 控件不支持双击事件。
响应鼠标和键盘
在键盘上使用 TAB 键并按 SPACEBAR 键,由此将焦点转移到 CheckBox控件上,这时也会触发 CheckBox 控件的 Click 事件。
可以在 Caption 属性的一个字母之前添加连字符,创建一个键盘快捷方式来切换 CheckBox 控件的选择。例如:
本例中,按 ALT+C 组合键将使控件的状态在选定和未选定之间切换。
增强 CheckBox 控件的视觉效果
CheckBox 控件象 CommandButton 和 OptionButton 控件一样,可通过更改 Style 属性的设置值后使用 Picture、DownPicture 和 DisabledPicture 属性增强其视觉效果。例如,有时可能希望在复选框中添加图标或位图,或者在单击或禁止控件时显示不同的图像。
使用 ComboBox 控件
组合框控件将文本框和列表框的功能结合在一起。有了这个控件,用户可通过在组合框中输入文本来选定项目,也可从列表中选定项目。
组合框向用户提供了供选择的列表。如果项目数超过了组合框能够显示的项目数,控件上将自动出现滚动条。用户即可上下或左右滚动列表。
何时用组合框代替列表框
通常,组合框适用于建议性的选项列表,而当希望将输入限制在列表之内时,应使用列表框。组合框包含编辑区域,因此可将不在列表中的选项输入列区域中。
此外,组合框节省了窗体的空间。只有单击组合框的向下箭头时(样式 1 的组合框除外,它总是处于下拉状态)才显示全部列表,所以无法容纳列表框的地方可以很容易地容纳组合框。
详细信息 关于这些控件的简单示例,请参阅第三章“窗体、控件和菜单”中的“使用 ListBox 和 ComboBox”。有关列表框控件的详细信息,还请参阅本章后面的“使用 ListBox 控件”。
数据绑定特性
Visual Basic 中的标准版和数据绑定版的 ComboBox 控件。虽然通过这两个版本都可以显示、编辑和更新大多数标准类型数据库中的信息,但是DBCombo 提供了更高级的数据访问特性。DBCombo 控件还支持一组与标准组合框控件不同的属性和方法。
详细信息 关于详细信息,请参阅第七章“使用Visual Basic标准控件”中“使用 DataList和 DataCombo”控件。
组合框的样式
此处有三种组合框样式。每种样式都可在设计时或运行时来设置,而且每种样式都使用数值或相应的 Visual Basic 常数来设置组合框的样式。
下拉式组合框
在缺省设置 (Style = 0) 下,组合框为下拉式。用户可(象在文本框中一样)直接输入文本,也可单击组合框右侧的附带箭头打开选项列表。选定某个选项后,将此选项插入到组合框顶端的文本部分中。当控件获得焦点时,也可按 ALT+ DOWN ARROW 键打开列表。
简单组合框
将组合框 Style 属性设置为 1 将指定一个简单的组合框,任何时候都在其内显示列表。为显示列表中所有项,必须将列表框绘制得足够大。当选项数超过可显示的限度时将自动插入一个垂直滚动条。用户可直接输入文本,也可从列表中选择。 象下拉式组合框一样,简单组合框也允许用户输入那些不在列表中的选项。
下拉式列表框
下拉式列表框 (Style = 2 ) 与正规列表框相似─ 它显示项目的列表,用户必须从中选择。但下拉式列表框与列表框的不同之处在于,除非单击框右侧的箭头,否则不显示列表。这种列表框与下拉式组合框的主要差别在于,用户不能在列表框中输入选项,而只能在列表中选择。当窗体上的空间较少时,可使用这种类型的列表框。
添加项目
为在组合框中添加项目,应使用 AddItem 方法,其语法如下:
通常在 Form_Load 事件过程中添加列表项目,但也可在任何时候使用AddItem 方法。这样一来就能够动态地(响应用户的操作)在列表中添加项目。
以下代码将 "Chardonnay," "Fum抏 Blanc," "Gew黵ztraminer," 和 "Zinfandel"放置到名为 Combo1,Style 属性为 0 (vbComboDropDown) 的组合框中:
Private Sub Form_Load ()
Combo1.AddItem "Chardonnay"
Combo1.AddItem “Fum''e Blanc”
Combo1.AddItem "Gewürztraminer"
Combo1.AddItem "Zinfandel"
End Sub
运行时,只要加载窗体,而且用户单击向下箭头,则将显示如图 7.8 所示的列表。
设计时添加项目
在设计时,也可设置组合框控件“属性”窗口的 List 属性,从而在列表中添加项目。选定 List 属性选项并单击向下箭头后就可输入列表项目,然后按 CTRL+ENTER 组合键换到新的一行。
只能将项目添加到列表的末尾。所以,如果要将列表按字母顺序排序,则应将 Sorted 属性设置为 True。关于详细的信息,请参阅后面“排序列表”。
在指定位置添加项目
为了在列表指定位置添加项目,应在新项目后指定索引值。例如,下行代码将 "Pinot Noir" 插入到第一个位置并把其它项目的位置向下调整:
Combo1.AddItem "Pinot Noir", 0
注意,指定列表中的第一个位置的是 0 而不是 1(见图 7.9)。
排序列表
将 Sorted 属性设置为 True 并省略索引,则可在列表中指定按字母顺序添加的项目。排序时不区分大小写;所以 "chardonnay" 和 "Chardonnay" 被看作一个词。
将 Sorted 属性设置为 True 之后,使用带有 index 参数的 AddItem 方法将导致不可预料的非排序结果。
删除项目
可在组合框中用 RemoveItem 方法删除项目。RemoveItem 有一个参数index,它指定要删除的项目:
box.RemoveItem index
box 及 index 参数和 AddItem 中的参数相同。
例如,为了删除列表中的第一个项目,应添加下面一行代码:
Combo1.RemoveItem 0
为了在组合框中删除所有列表项目,应使用 Clear 方法:
Combo1.Clear
用Text属性获取列表内容
获取当前选定项目值的最简单的常用方法就是使用 Text 属性。在运行时无论向控件的文本框部分输入了什么文本,Text 属性都与这个文本相对应。它可以是选定的列表选项,或者是用户在文本框中输入的字符串。
例如,如果用户选定列表框中的 "Chardonnay",则通过下列代码显示有关Chardonnay 的信息:
Private Sub Combo1_Click ()
If Combo1.Text = "Chardonnay" Then
Text1.Text = "Chardonnay is a medium-bodied _
white wine."
End If
End Sub
Text 属性包含 Combo1 列表框中当前选定的项目。代码查看是否选择了"Chardonnay",若是如此,则在文本框中显示信息。
用 List 属性访问列表选项
有了 List 属性就可访问列表中所有项目。该属性包含一个数组,而且列表中的每个项目都是数组的元素。每一项都表示为字符串的形式。为了引用列表中的项目,应使用如下语法:
box.List(index)
box 参数引用组合框,而 index 是项目的位置。顶端项目的索引为 0,下一个项目的索引为 1,依次类推。例如,在文本框中,以下语句显示列表中的第三个项目 (index = 2):
Text1.Text = Combo1.List(2)
用 ListIndex 属性判断位置
欲知组合框列表中选定项目位置,请使用 ListIndex 属性。该属性设置或返回控件中当前选定项目的索引值,而且只在运行时有效。对组合框的ListIndex 属性进行设置也会触发控件的 Click 事件。
若选定第一个(顶端)项目,则属性值为0,选定的下一个项目属性值为1,依次类推。如果未选定项目,或者用户在组合框中输入选项(样式0 或1)而不在列表中选择现有项目,则 ListIndex 为 -1。
注意 NewIndex 属性可用来跟踪列表中最后添加的项目的索引。向排序列表插入项目时,这一点很有用。
用 ListCount 属性返回项目数
为了返回组合框中的项目数,应使用 ListCount 属性。例如,下列语句用ListCount 属性判断组合框中的项目数:
Text1.Text = "You have " & Combo1.ListCount & " _
entries listed"