vb控件的使用(二)2007-05-05使用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
运行时,只要加载窗体,而且用户单击向下箭头,则将显示如图所示的列表。

设计时添加项目
在设计时,也可设置组合框控件“属性”窗口的List属性,从而在列表中添加项目。选定List属性选项并单击向下箭头后就可输入列表项目,然后按CTRL+ENTER组合键换到新的一行。
只能将项目添加到列表的末尾。所以,如果要将列表按字母顺序排序,则应将Sorted属性设置为True。关于详细的信息,请参阅后面“排序列表”。在指定位置添加项目
为了在列表指定位置添加项目,应在新项目后指定索引值。例如,下行代码将 "Pinot Noir" 插入到第一个位置并把其它项目的位置向下调整:
Combo1.AddItem "Pinot Noir", 0
注意,指定列表中的第一个位置的是 0 而不是 1(见图)。

排序列表
将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"