Как получить SelectedItem или SelectedIndex из ListView в vb.net
как вы знаете по вопросу, что я хочу. я использовал listbox. В Listbox
мы можем получить выбранный деталь простой строкой кода:
listbox1.selectedItem
. теперь я использую ListView
, Я SelectedItem
или Selectedindex
of ListView
.
7 ответов
ListView
возвращает коллекции выбранных элементов и индексов через SelectedItems
и SelectedIndices
свойства. Обратите внимание, что эти коллекции пусты, если в данный момент элемент не выбран (lst.SelectedItems.Count = 0
). Первый выбранный элемент -lst.SelectedItems(0)
. Индекс этого элемента в Items
коллекция lst.SelectedIndices(0)
. Так что в основном
lst.SelectedItems(0)
это то же самое, что
lst.Items(lst.SelectedIndices(0))
вы также можете использовать флажки. Set CheckBoxes
to True
для этого. Через CheckedItems
и CheckedIndices
свойства вы можете видеть, какие элементы проверяются.
вот ответ, который я нашел для своего вопроса:
urlList1.FocusedItem.Index
и я получаю выбранное значение элемента:
urlList1.Items(urlList1.FocusedItem.Index).SubItems(0).Text
Private Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click
Dim tt As String
tt = ListView1.SelectedItems.Item(0).SubItems(1).Text
TextBox1.Text = tt.ToString
End Sub
ListView.FocusedItem.Index
или вы можете использовать цикл foreach, как это
int index= -1;
foreach (ListViewItem itm in listView1.SelectedItems)
{
if (itm.Selected)
{
index= itm.Index;
}
}
например, если вы хотите выбрать тот же элемент в списке с помощью listview, вы можете использовать Частная суб ListView1_SelectedIndexChanged(как byval отправителя как системы.Объект, бывал е как система.Равно EventArgs) Обрабатывает Мыши Listview1.Разделе мы рассмотрим
For aa As Integer = 0 To ListView1.SelectedItems.Count - 1
ListBox1.SelectedIndex = ListView1.SelectedIndices(aa)
Next
End Sub
пожалуйста, попробуйте это для получения индекса столбца
Private Sub lvDetail_MouseMove(sender As Object, e As MouseEventArgs) Handles lvDetail.MouseClick
Dim info As ListViewHitTestInfo = lvDetail.HitTest(e.X, e.Y)
Dim rowIndex As Integer = lvDetail.FocusedItem.Index
lvDetail.Items(rowIndex).Selected = True
Dim xTxt = info.SubItem.Text
For i = 0 To lvDetail.Columns.Count - 1
If lvDetail.SelectedItems(0).SubItems(i).Text = xTxt Then
MsgBox(i)
End If
Next
End Sub