vb.net中的通配符搜索字符

时间:2019-02-11 19:19:17

标签: vb.net

我要创建一个通配符搜索字符(例如Binary%),因此当他们单击搜索时,它会找到文件名中带有Binary一词的所有文件,并将它们加载到列表框中。我当前的代码如下。

Private Sub _test_TextChanged(sender As Object, e As TextChangedEventArgs) Handles _test.TextChanged
    For x As Integer = 0 To _listbox.Items.Count - 1
        If _listbox.Items(x).ToString = _test.Text$ Then
            _listbox.SelectedIndex = x
            Return
        End If
    Next

End Sub

欢迎任何帮助!

谢谢! -Kyvex

1 个答案:

答案 0 :(得分:1)

您要问的内容与您的代码不完全匹配。

  1. ...“ 当他们单击搜索时会找到所有文件” ...
    但是您有 TextBox (不是按钮)的 TextChanged 事件处理程序

  2. ...”,文件名中包含Binary一词,然后将其加载到列表框中
    但是您只能选择与列表框中已有项目的过滤器匹配的第一项

要使您的代码执行似乎要执行的操作,只需使用Like运算符,并在TextBox.Text之后添加通配符(*

For x As Integer = 0 To _listBox.Items.Count - 1
    If _listBox.Items(x).ToString Like _test.Text & "*" Then
        _listBox.SelectedIndex = x
        Return
    End If
Next

现在,您可以在列表框中选择与过滤器匹配的第一项

如果您有一个多选列表框,则可以使用它

If _test.Text = "" Then Exit Sub
_listBox.SelectionMode = SelectionMode.MultiSimple
For x As Integer = 0 To _listBox.Items.Count - 1
    _listBox.SetSelected(x, _listBox.Items(x).ToString Like _test.Text & "*")
Next

(过滤器逻辑与第一个示例相同)

您可以使其不区分大小写

_listBox.SetSelected(x, _listBox.Items(x).ToString().ToUpper() Like _test.Text.ToUpper() & "*")