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

时间:2010-01-07 16:08:16

标签: vb.net

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

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()

我想我错过了正确的循环或其他任何东西?

请帮忙。

感谢。

2 个答案:

答案 0 :(得分:1)

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

该行

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

应改为

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

答案 1 :(得分:0)

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