列表框中的vb.net字符串查找,输出为字符串的不同部分

时间:2014-10-16 14:43:00

标签: vb.net

姓氏发现者

我要做的是创建所有人姓的列表,其中第一个名称= @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

感谢您的任何意见。

1 个答案:

答案 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()上循环。