Искать в Listbox vb.net - PullRequest
       11

Искать в Listbox vb.net

1 голос
/ 17 июня 2020

У меня есть текстовое поле1 для поиска «темы» в элементе управления Listbox, Listbox получит «тему» ​​из текстового поля2, например, я добавляю «java1», «java2» и «html» в элемент управления Listbox, и когда я набираю слово «java» в текстовое поле1, тогда элемент управления Listbox покажет только все, что включает «java», например:

В этом случае есть «java 1 » и «java 2 ”. Кроме того, если я удалил слово «java», которое введено в textbox1, то элемент управления Listbox отобразит всю его «тему».

На этом форуме задавался тот же вопрос, но мой вопрос заключается в том, что у меня есть данные, доступные в Listbox.

Я пытаюсь изменить Код для своего случая, но он не работает.

Это мой код

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

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Когда я набираю 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
0 голосов
/ 18 июня 2020

@ Idle_Mind Хорошо, я понял проблему, поэтому мой вопрос невозможен? - Đứ c Thắng

Добрый день ... Я совсем не это сказал. Попробуйте что-то вроде этого:

enter image description here

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
...