本文主要是介绍.NET中为组合框添加自动查询功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在窗体中添加如下方法:
第一个方法是AutoCompleteKeyUp,它将组合框和KeyEventArgs对象作为参数,需要在组合框的KeyUp事件中调用此方法;它全根据用户输入的内容选择最接近的内容;
第二个方法是AutoCompleteLeave ,在激活组合框的 Leave事件时调用,此方法仅提取用户最终选择的内容,按照组合框中的每个匹配内容修改其大小写。
代码如下:
Private Sub AutoCompleteKeyUp(ByVal Combo As ComboBox, ByVal e As KeyEventArgs) Dim strTyped As String Dim intFoundIndex As Integer Dim objFoundItem As Object Dim strFoundText As String Dim strAppendText As String ' 忽略特殊键 Select Case e.KeyCode Case Keys.Back, Keys.Left, Keys.Right, Keys.Up, Keys.Down, Keys.Delete, Keys.CapsLock Return End Select ' 在查询列表中找到 strTyped = Combo.Text intFoundIndex = Combo.FindString(strTyped) If intFoundIndex >= 0 Then objFoundItem = Combo.Items(intFoundIndex) strFoundText = Combo.GetItemText(objFoundItem) strAppendText = strFoundText.Substring(strTyped.Length) Combo.Text = strTyped & strAppendText Combo.SelectionStart = strTyped.Length Combo.SelectionLength = strAppendText.Length End If End Sub Private Sub AutoCompleteLeave(ByVal Combo As ComboBox) Dim intFoundIndex As Integer intFoundIndex = Combo.FindStringExact(Combo.Text) Combo.SelectedIndex = -1 Combo.SelectedIndex = intFoundIndex End Sub Private Sub ComboBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyUp AutoCompleteKeyUp(ComboBox1, e) End Sub Private Sub ComboBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Leave AutoCompleteLeave(ComboBox1) End Sub |
这篇关于.NET中为组合框添加自动查询功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!