首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

怎么设计ComboBox的过滤功能,直接能模糊查找

2014-01-01 
如何设计ComboBox的过滤功能,直接能模糊查找如何设计的过滤功能,直接能模糊查找 详细说就是直接在omboBox

如何设计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 相近,丛新绑定
[解决办法]

引用:
Quote: 引用:

去找别的控件实现Autocomplete吧。


先谢谢了,这个是网页的吗,是不是也是从头开始查找的啊


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.csdn.net/yenange/article/details/7858152
[解决办法]
我用C#写过一个,下拉后有输入框模糊查询(可模糊查询多列),数据显示在下拉的DataGridView里,可以显示多列。很灵活!

热点排行