在列表框中搜索 vb.net

Search in Listbox vb.net

我有一个textbox1,用于在Listbox控件中查找“subject”,Listbox将从textbox2中获取“subject”,例如,我添加“java1”、“java2”和“ html”到列表框控件中,当我在文本框 1 中键入单词“java”时,列表框控件将只显示包含“java”的所有内容,例如:

在这种情况下,有“java1”和“java2”。除此之外,如果我删除了在文本框 1 中键入的单词“java”,那么列表框控件将显示所有 "subject"。

这个论坛上也有同样的问题,但我的不同之处在于我在列表框中有可用的数据。

我尝试为我的案例更改代码,但它不起作用。

这是我的代码

Private Sub Tbx_search_TextChanged(sender As Object, e As EventArgs) Handles Tbx_seach.TextChanged
    ListBox1.Items.Clear()
    For Each item As String In ListBox1.Items
        If item.StartsWith(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) Then
            ListBox1.Items.Add(item)
        End If
    Next
End Sub

@Idle_Mind Okay I understood the problem, so my question is not possible? – Đức Thắng

天啊……这根本不是我说的。尝试这样的事情:

Public Class Form1

    Private elements As New List(Of String)

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        elements.Add("cat")
        elements.Add("caterpillar")
        elements.Add("catfish")
        elements.Add("lion")
        elements.Add("lionfish")
        elements.Add("dog")
        elements.Add("lizard")
        elements.Add("bird")

        ListBox1.Items.AddRange(elements.ToArray)
    End Sub

    Private Sub Tbx_search_TextChanged(sender As Object, e As EventArgs) Handles Tbx_search.TextChanged
        ListBox1.Items.Clear()
        If Tbx_search.Text.Trim.Length > 0 Then
            ListBox1.Items.AddRange(elements.Where(Function(x) x.StartsWith(Tbx_search.Text)).ToArray)
        Else
            ListBox1.Items.AddRange(elements.ToArray)
        End If
    End Sub

End Class

当我输入 tbx_search 查找时,我列表框中的所有数据都被删除(可能被隐藏)

Private elements As New List(Of String)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    elements.Add(Tbx_type.Text)
    Lb_ListDK.Items.AddRange(elements.ToArray)
End Sub

Private Sub Tbx_search_TextChanged(sender As Object, e As EventArgs) Handles Tbx_search.TextChanged
    Lb_ListDK.Items.Clear()
    If Tbx_search.Text.Trim.Length > 0 Then
        Lb_ListDK.Items.AddRange(elements.Where(Function(x) x.StartsWith(Tbx_search.Text)).ToArray)
    Else
        Lb_ListDK.Items.AddRange(elements.ToArray)
    End If
End Sub