我正在编写一个代码来搜索整个列表框项目,并在用户在文本框中输入文本时突出显示它们。我正在循环使用“逗号”输入的文本框项目。但是当用户使用逗号键入多个项目时,代码无法将其添加到选定的索引。它适用于单个项目。
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()
我想我错过了正确的循环或其他任何东西?
请帮忙。
感谢。
答案 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”