#vb.net #winforms #listview #.net-5
#vb.net #winforms #listview #.net-5
Вопрос:
Я пробовал это:
If ListView1.SelectedItems = 1 Then
'do somehting
ElseIf ListView1.SelectedItems = 2 Then
'do something else
Else
'do another thing
End If
Но это не сработало. Может кто-нибудь сказать мне, что я делаю не так?
Комментарии:
1.
SelectedItems
Свойство является коллекцией и не может быть равно целому числу. Вы пытаетесь проверить значение текста ListItem или количествоSelectedItems
коллекций?
Ответ №1:
SelectedItems
Свойство элемента ListView
управления представляет собой коллекцию (из потенциально нескольких выбранных элементов).
Рассмотрим ситуацию, когда у вас есть элемент управления ListView1, и вручную добавьте в него элементы в событие загрузки формы, например:
ListView1.Items.Add("Dog")
ListView1.Items.Add("Cat")
ListView1.Items.Add("Bird")
Тогда у вас есть кнопка управления Button1, событие щелчка которой имеет следующий код:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim s As String = ""
For Each item As ListViewItem In ListView1.SelectedItems
s = item.Text vbCrLf
Next
MsgBox(s)
End Sub
Когда вы нажимаете кнопку, она перебирает коллекцию всех выбранных элементов по одному, получая доступ .Text
к свойству каждого элемента и добавляя их в выходные данные.
Итак, когда вы говорите «Найти выбранный элемент listview», выбранных элементов может быть несколько, поэтому, возможно, вы можете более точно объяснить, что вы хотели бы видеть при щелчке, поскольку элемент управления имеет несколько возможных применимых типов событий. Например. Click, ItemChecked, MouseClick, MouseDoubleClick,и т.д.
ОБНОВЛЕНИЕ: возможно, я неправильно понял ваш вопрос. Пожалуйста, предоставьте более подробную информацию.
Возможно, это то, что вам нужно?
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As ListViewItemSelectionChangedEventArgs) Handles ListView1.ItemSelectionChanged
If e.Item.Text = "Dog" Then MsgBox("It's a dog")
End Sub
Работа с этими событиями может быть сложной. Например, появится сообщение msgbox, в котором вы выбираете dog. Но он также появляется, когда выбор меняется с dog на что-то другое, потому что это все еще событие изменения выбора. Однако это должно помочь вам двигаться в правильном направлении. Возможно, вам потребуется внимательно просмотреть различные события, чтобы выяснить, какое из них лучше всего подходит для вашей ситуации, и вам может потребоваться обработать несколько событий.