如何设计ComboBox的过滤功能,直接能模糊查找
如何设计的过滤功能,直接能模糊查找
详细说就是直接在omboBox输入字符后,下拉框显示出来过滤后的结果
输入的字符可能是后面的几位,不是从头开始的
不知道这样说明白了没有
[解决办法]
以前用LookupEdit很强大,不过刚刚发现能找到的都是收费的,那就推荐你看看这个
http://www.cnblogs.com/zhaoblogs/archive/2011/12/07/2278938.html
[解决办法]
不要绑定datatable,绑定view。view是可以用过滤。
输入条件件,用view的过滤,下拉框就自动改变了。
记得在2头和空格里加上通配符。
比如:要查找: ab cd 就要加上通配符成为: %ab%cd%
然后用这个条件去删选view就可以了。
[解决办法]
去找别的控件实现Autocomplete吧。
[解决办法]
Private Sub ComboBox1_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDown
MsgBox("ComboBox1_DropDown")
ComboBox1_DropDownClosed(ComboBox1, e)
End Sub
Private Sub ComboBox1_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDownClosed
MsgBox("ComboBox1_DropDownClosed")
End Sub
Private Sub (ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
MsgBox("ComboBox1_TextChanged")
ComboBox1_DropDown(ComboBox1, e)
End Sub
用timer 1秒加载一次,在 ComboBox1_TextChanged 中,查找combox1.items 里面 displaymember 值 与 combox.text 相近,丛新绑定
[解决办法]
Private Sub getword()
ComboBox1.Items.Clear()
Using r As IO.StreamReader = New IO.StreamReader("word.txt", System.Text.Encoding.Default)
Dim line As String
line = r.ReadLine
Do While (Not line Is Nothing)
If line.Contains(ComboBox1.Text.Trim()) Then
ComboBox1.Items.Add(line)
End If
line = r.ReadLine
Loop
r.Dispose()
r.Close()
End Using
Private Sub ComboBox1_TextUpdate(sender As Object, e As System.EventArgs) Handles ComboBox1.TextUpdate
If ComboBox1.Text <> String.Empty Then
getword()
End If
End Sub
word.txt的内容:
11142011
11142172
11143221
11131421
11132223
End Sub