用户使用组合框(Combo box)的一个原因就是他们能够快速地从一个已给定的列表中选择所需的值。但是,如果在这个列表中存在很多项的话,那么用户就必须搜索所需项。在实际情况中,组合框能根据用字段的用户类型来进行搜索。Visual Basic.NET就提供了一个简便的方法来完成这个任务,那就是应用组合框对象中的FindString这个方法。
举例来说,往应用窗体上加入一个组合框(Combobox),然后再Form_Load事件中加入如下代码:
ComboBox1.Items.Add("Baker")
ComboBox1.Items.Add("Barber")
ComboBox1.Items.Add("Barker")
ComboBox1.Items.Add("Berkley")
ComboBox1.Items.Add("Brown")
ComboBox1.Items.Add("Carter")
ComboBox1.Items.Add("Davis")
接着,在ComboBox1_KeyPress事件中加入一下代码:
Dim intRow As Integer
Dim strSearchText As String
strSearchText = ComboBox1.Text
If Asc(e.KeyChar) >=
32 And Asc(e.KeyChar) <=
127 Then
intRow
= ComboBox1.FindString(strSearchText)
If
intRow > -1 Then
ComboBox1.SelectedIndex
= intRow
ComboBox1.SelectionStart
= Len(strSearchText)
ComboBox1.SelectionLength
= Len(ComboBox1.Text) -
_
ComboBox1.SelectionStart
End If
End If
只要有任何字符的输入,这段代码就开始运行,这种字符的输入可以是标准的字母、数字或者是符号。然后就调用FindString,它将返回以输入字符串为开头的第一项的索引。如果返回的是正确的索引,那么这一项就被选中了。