Я думаю, что это будет делать то, что вы хотите. Он будет искать в столбце первый столбец ListView для текста в TextBox.
Настройте ListView:
With ListView1
.MultiSelect = False 'Ensure only one item selected at a time
.HideSelection = False 'Shows the selection when the textbox changes
'Add some items for testing
.Items.Add("1234")
.Items.Add("1122")
.Items.Add("1133")
End With
Затем в текстовое поле TextChanged
измененном событие:
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
ListView1.SelectedItems.Clear()
Dim foundItem As ListViewItem = ListView1.FindItemWithText(TextBox1.Text, False, 0, False)
If (foundItem IsNot Nothing) Then foundItem.Selected = True
End Sub
В качестве альтернативы, если вы хотите указать, какой столбец вашего ListView для поиска текста, то это функция должна сделать трюк:
Private Sub SelectListViewItem(ByRef listviewSource As ListView, ByVal textToFind As String, ByVal column As Integer)
Dim foundItem As ListViewItem = Nothing
Dim startIndex As Integer = 0
listviewSource.SelectedItems.Clear()
Do Until Not foundItem Is Nothing AndAlso foundItem.SubItems(column).Text = TextBox2.Text
If foundItem Is Nothing Then startIndex = 0 Else startIndex = foundItem.Index + 1
If startIndex > listviewSource.Items.Count - 1 Then Exit Sub 'We have reached end of the listview
foundItem = listviewSource.FindItemWithText(textToFind, True, startIndex)
If foundItem Is Nothing Then Exit Sub
Loop
If (foundItem IsNot Nothing) Then foundItem.Selected = True
End Sub
Использование:
Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
SelectListViewItem(ListView1, TextBox2.Text, 1)
End Sub
Предупреждение - В обоих случаях, это может привести к ваше приложение работает плохо, если у вас есть много пунктов в вашем ListView, в этом случае вы могли бы рассмотреть вопрос о переносе кода в фоновом режиме рабочий
Большое спасибо, сэр, у меня есть другой вопрос, что делать, если я хочу, чтобы элементы были нажаты, а не выбраны? спасибо –