姓氏发现者
我要做的是创建所有人姓的列表,其中第一个名称= @name 虽然这不是确切的目的,但更容易尝试和解释实际内容。我知道使用数据源可能更容易,但我想尽可能避免这种情况。
Form_Load
ListBox1.Items.Add("Dean Smith")
ListBox1.Items.Add("John Jones")
ListBox1.Items.Add("David Johnson")
ListBox1.Items.Add("Samantha Thompson")
ListBox1.Items.Add("Claire Frost")
ListBox1.Items.Add("John Brown")
然后在button_click上执行以下某种字符串操作
if textbox1.text contains "John" then
listbox2.items.add(Jones)
listbox2.items.add(Brown)
else messagebox.show("No matches found")
end if
感谢您的任何意见。
答案 0 :(得分:1)
我所理解的是您愿意使用文本框作为列表框的过滤器。这可以通过在每个TextChanged()上运行查询来实现。
所以为了给你一些指导,你可以这样做;
private Names As List(Of String)
Private Sub Form2_Load1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Names = New List(Of String)
With Names
.Add("Dean Smith")
.Add("John Jones")
.Add("John Brown")
End With
For Each Name As String In Names
ListBox1.Items.Add(Name)
Next
End sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
ListBox1.Items.Clear()
For Each s As String In Names
If s.Substring(0, TextBox1.Text.Length).ToLower = TextBox1.Text.ToLower Then
ListBox1.Items.Add(s)
End If
Next
End Sub
我希望这个解决方案可以帮助您实现自己想要的目标。您还可以使用委托函数将直接过滤器应用于List,这将避免您再次在TextChange()上循环。