在列表框中搜索 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
我有一个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