Как получить SelectedItem или SelectedIndex ListView в vb.net - PullRequest
10 голосов
/ 01 января 2012

Как вы знаете, вопрос, что я хочуЯ использовал список.В ListBox мы можем получить выбранный элемент с помощью простой строки кода: listbox1.SelectedItem.Теперь я использую ListView, как я получаю SelectedItem или SelectedIndex из ListView.

Ответы [ 7 ]

12 голосов
/ 01 января 2012

ListView возвращает коллекции выбранных элементов и индексов через свойства SelectedItems и SelectedIndices.Обратите внимание, что эти коллекции пусты, если в данный момент ни один элемент не выбран (lst.SelectedItems.Count = 0).Первый выбранный элемент - lst.SelectedItems(0).Индекс этого предмета в коллекции Items составляет lst.SelectedIndices(0).Таким образом, в основном

lst.SelectedItems(0)

совпадает с

lst.Items(lst.SelectedIndices(0))

Вы также можете использовать флажки.Для этого установите CheckBoxes на True.Через свойства CheckedItems и CheckedIndices вы можете видеть, какие элементы проверяются.

9 голосов
/ 02 января 2012

Вот ответ, который я нашел на мой вопрос:

urlList1.FocusedItem.Index

И я получаю значение выбранного элемента по:

urlList1.Items(urlList1.FocusedItem.Index).SubItems(0).Text
7 голосов
/ 06 сентября 2013

VB6: Listview1.selecteditem

VB10: Listview1.FocusedItem.Text

2 голосов
/ 22 февраля 2015
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
1 голос
/ 10 января 2014

Если вы хотите выбрать тот же элемент в listbox, используя listview, вы можете использовать:

Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
    For aa As Integer = 0 To ListView1.SelectedItems.Count - 1
        ListBox1.SelectedIndex = ListView1.SelectedIndices(aa)
    Next
End Sub
0 голосов
/ 30 января 2017

Пожалуйста, попробуйте это для получения столбца Индекс

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
0 голосов
/ 10 апреля 2012
ListView.FocusedItem.Index 

или вы можете использовать цикл foreach как этот

int index= -1;
foreach (ListViewItem itm in listView1.SelectedItems)
{
    if (itm.Selected)
    {
        index= itm.Index;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...