Как получить 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

в VB6: Мыши listview1.selecteditem

VB10: Мыши listview1.FocusedItem.Текст


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