Combobox(组合框)控件相当于将文本框和列表框的功能结合在一起。这个控件可以实现输入文本来选定项目,也可以实现从列表中选定项目这两种选择项目的方法。如果项目数超过了组合框能够显示的项目数,控件上将自动出现滚动条。用户可以上下或左右滚动列表。
1.使用组合框和列表框
通常,组合框适用于建议性的选项列表,而当希望将输入限制在列表之内时,应使用列表框。组合框包含编辑区域,因此可将不在列表中的选项输入列区域中。此外,组合框节省了窗体的空间。只有单击组合框的向下箭头时(Style属性值为1的组合框除外,它总是处于下拉状态)才显示全部列表,所以无法容纳列表框的地方可以很容易地容纳组合框。
2.组合框的样式
此处有三种组合框样式。每种样式都可在设计时或运行时来设置,而且每种样式都使用数值或相应的Visual Basic常数来设置组合框的样式。
样式值常数:下拉式组合框值为0,Vb.net中的常数值为DropDown;简单组合框值为1,Vb.net中的常数值为Simple;下拉式列表框值为2,vb.net中的常数值为DropDownList。
3.下拉式组合框
在缺省设置(Style=0)下,组合框为下拉式。用户可象在文本框中一样直接输入文本,也可单击组合框右侧的附带箭头打开选项列表。选定某个选项后,将此选项插入到组合框顶端的文本部分中。当控件获得焦点时,也可按Alt+↓键打开列表
4.简单组合框
将组合框的Style属性设置为1,将指定一个简单的组合框,任何时候都在其内显示列表。为显示列表中所有项,必须将列表框绘制得足够大。当选项数超过可显示的限度时将自动插入一个垂直滚动条。用户可直接输入文本,也可从列表中选择。象下拉式组合框一样,简单组合框也允许用户输入那些不在列表中的选项。
5.下拉式组合框
下拉式组合框(Style=2)与正规列表框相似--它显示项目的列表,用户必须从中选择,但下拉式列表框与列表框不同之处在于,除非单击框右侧的箭头,否则不显示列表。
这种列表框与下拉式组合框的主要差别在于,用户不能在列表框中输入选项,而只能在列表中选择。当窗体上的空间较少时,可使用这种类型的列表框。
6.添加项目
为在组合框中添加项目,应使用Insert方法,其语法如下:
ComboboxName.Items.Insert(index As Integer,item As Object)
"comboboxName"为列表框或组合框名称,item为在列表中添加的字符串表达式,用引号括起来。Index用来指定新项目在列表中的插入位置。Index为0表示第一个位置。当在第一个位置时,也可以用语法:
combobox.Items.Add(item As Object)
通常在设计时或在New过程中添加列表项目,但也可在任何时候使用Insert方法。这样就能动态在列表中添加项目。以下代码将“Chardonnay”,“Fum Blanc”,“Gewztraminer”和“Zinfandel”放置到名为combobox1,Style属性为0(DropDown)的组合框中:
Public Sub New()
...
...
Combobox1.Items.Insert "Chardonnay"
Combobox1.Items.Insert "Fum Blanc"
Combobox1.Items.Insert "Gewztraminer"
Combobox1.Items.Insert "Zinfandel"
End Sub
7.设计时添加项目
在设计时,也可设置组合框控件“属性”窗口的Items属性,从而在列表中添加项目。选定Items属性并单击按钮后就可以输入列表项目,然后按回车键换到新的一行。
只能将项目添加到列表的末尾。所以,如果要将列表按字母顺序排序,则应将Sorted属性设置为True.
8.指定位置添加项目
为了在列表指定位置添加项目,应在新项目后指定索引值。例如,下行代码将"Piont Noir"插入到第一个位置并把其他项目的位置向下调整:
Combobox1.Items.Insert(0,"Pinot Noir")
注意:指定列表中的第一个位置的是0而不是1
9.排序列表
将Sorted属性设置为True并省略索引,则可在列表中指定按字母顺序添加的项目。排序时不区分大小写。将sorted属性设置为true后,Items.Insert方法将导致不可预料的非排序结果。
10.删除项目
可在组合框中用Items.Remove方法来删除项目。Items.Remove有一个参数index,它指定要删除的项目:combobox1.Items.Remove(index)及index参数和Items.Insert中的参数相同。例如,为了删除列表中的第一个项目,应添加下面一行代码:
combobox1.Items.Remove(0)
若要删除所有列表项目,就使用Clear方法:
combobox1.Clear
11.用Text属性获取列表内容
获取当前选项目值的最简单的常用方法就是使用Text属性。在运行时无论向控件的文本框部分输入了什么文本,Text属性都与这个文本相对应。它可以是选定的列表选项,或者是用户在文本框中输入的字符串。例如,如果用户选定列表框中的“chardonnay”,则通过下列代码显示有关“chardonnay”的信息:
Private Sub Combobox1_click(Byval sender As Object,Byval e As System.EventArgs)
If Combobox1.Text="Chardonnay" Then
Textbox1.Text="Chardonnay is a midium-bodied white wine."
End If
End Sub
其中Text属性包含Combobox1列表框中当前选定的项目。代码查看是否选择了“Chardonnay”,若是如此,则在文本框中显示信息。
12.用Items属性访问列表选项
有了Items属性就可访问列表中所有项目,该属性包含一个数组,而且列表中的每个项目都是数组的元素。每一项都表示为字符串的形式。为了引用列表中的项目,应使用如下语法:
ComboboxName.Items(index)
ComboboxName为组合框名称,而index是项目的位置。顶端项目的索引为0,下一个项目的索引为1,依次类推。例如,在文本框中,以下语句显示列表中的第三个项目(index=2):
Text1.Text=CStr(Combobox1.Items(2))
13.用SelectIndex属性判断位置
想要知道组合框列表中选定项目位置,可以由SelectIndex属性得到。该属性设置或返回控件中当前选定项目的索引值,而且只在运行时有效。对组合框的SelectIndex属性进行设置时也会触发控件的Click事件。若选定第一个(项端)项目,则属性值为0;选定的下一个项目属性值为1,依次类推。如果未选定项目,或者用户在组合框中输入选项(样式0或1)而不在列表中选择现有的项目,则SelectIndex为-1。
14.Items.Count属性返回项目数
为了返回组合框中的项目数,应使用Items.Count属性。例如,下列语句用Items.Count属性判断组合框中的项目数:
TextBox1.Text="You have"&Combobox1."Items.Count"&"_entries listed"
第一段不是没有反应,因为你是要Combo控件内容变化才能看到效果,如果你在Combo控件输入其他的内容的话,下拉就可以选择(即效果)第二段程序是窗体加载事件中初始化Combo控件,只要运行窗体就执行程序,所以很明显有效果。所以一般都是在窗体加载中进行初始化Combo控件的。