在文本框vb.net 2008中使用逗号分隔的值搜索列表框

在文本框vb.net 2008中使用逗号分隔的值搜索列表框,vb.net,Vb.net,我正在编写一个代码来搜索整个列表框项目,并在用户在文本框中输入文本时突出显示它们。我循环浏览使用“逗号”输入的文本框项目。但当用户使用逗号键入多个项目时,代码无法将其添加到选定的索引中。它适用于单个项目 Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp If (e.KeyCode = Keys

我正在编写一个代码来搜索整个列表框项目,并在用户在文本框中输入文本时突出显示它们。我循环浏览使用“逗号”输入的文本框项目。但当用户使用逗号键入多个项目时,代码无法将其添加到选定的索引中。它适用于单个项目

Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
        If (e.KeyCode = Keys.Enter) Then

            ListBox1.BeginUpdate()
            ListBox1.SelectedIndices.Clear()

            If TextBox1.Text.Length > 0 Then
                Dim lstOfStrings() As String = TextBox1.Text.Split(","c)
                For Each s As String In lstOfStrings
                    For index As Integer = 0 To ListBox1.Items.Count - 1

                        If s.Trim() <> "" Then

                            Dim item As String = ListBox1.Items(index).ToString()

 If item.IndexOf(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0 Then

                                ListBox1.SelectedIndices.Add(index)

                            End If
                        End If
                    Next
                Next s
                End
                If True Then

                End If


            End If

            ListBox1.EndUpdate()
Private Sub TextBox1\u KeyUp(ByVal sender作为对象,ByVal e作为System.Windows.Forms.KeyEventArgs)处理TextBox1.KeyUp
如果(e.KeyCode=Keys.Enter),则
ListBox1.BeginUpdate()
ListBox1.SelectedDices.Clear()
如果TextBox1.Text.Length>0,则
Dim lstOfStrings()作为字符串=TextBox1.Text.Split(“,”c)
对于每个s,将其作为字符串
对于索引为整数=0的ListBox1.Items.Count-1
如果是s.Trim()”“那么
以字符串形式显示项目的尺寸=ListBox1.Items(index.ToString())
如果item.IndexOf(TextBox1.Text,StringComparison.CurrentCultureIgnoreCase)>=0,则
ListBox1.SelectedDices.Add(索引)
如果结束
如果结束
下一个
下一个s
终点
如果是真的话
如果结束
如果结束
ListBox1.EndUpdate()
我想我错过了正确的循环或其他什么

请帮忙


谢谢。

您正在使用TextBox1.Text进行比较,而不是使用'For Each'变量s

线路

If item.IndexOf(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0 Then
应改为

If item.IndexOf(s, StringComparison.CurrentCultureIgnoreCase) >= 0 Then

您正在使用TextBox1.Text进行比较,而不是使用'For Each'变量s

线路

If item.IndexOf(TextBox1.Text, StringComparison.CurrentCultureIgnoreCase) >= 0 Then
应改为

If item.IndexOf(s, StringComparison.CurrentCultureIgnoreCase) >= 0 Then

还要确保Listbox的属性SelectionMode更改为Multi,而不是默认的“One”

还要确保Listbox的属性SelectionMode更改为Multi,而不是默认的“One”