怎么设计ComboBox的过滤功能,直接能模糊查找
如何设计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 相近,丛新绑定
------解决方案--------------------
Autocomplete全都可以让你自己定义查找算法。当用户输入2的时候,你可以告诉组件哪些包含2;当用户再输入1的时候,你可以告诉哪些包含21;当用户再输入7的时候,你可以告诉组件哪些包含217......
你自己定义一个回调而不像combobox那样死板,这就是autocomplete。在各种开发平台中,都会有它。而不需要combobox。
------解决方案--------------------
供你参考:
------解决方案--------------------
你可以参考一下我的博客: http://blog.****.net/yenange/article/details/7858152
------解决方案--------------------
我用C#写过一个,下拉后有输入框模糊查询(可模糊查询多列),数据显示在下拉的DataGridView里,可以显示多列。很灵活!
如何设计的过滤功能,直接能模糊查找
详细说就是直接在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 相近,丛新绑定
------解决方案--------------------
Autocomplete全都可以让你自己定义查找算法。当用户输入2的时候,你可以告诉组件哪些包含2;当用户再输入1的时候,你可以告诉哪些包含21;当用户再输入7的时候,你可以告诉组件哪些包含217......
你自己定义一个回调而不像combobox那样死板,这就是autocomplete。在各种开发平台中,都会有它。而不需要combobox。
------解决方案--------------------
供你参考:
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
------解决方案--------------------
你可以参考一下我的博客: http://blog.****.net/yenange/article/details/7858152
------解决方案--------------------
我用C#写过一个,下拉后有输入框模糊查询(可模糊查询多列),数据显示在下拉的DataGridView里,可以显示多列。很灵活!