2012-01-01 12 views
8

Jak wiadomo na pytanie, co chcę. używałem listbox. W Listbox możemy otrzymać wybraną pozycję za pomocą prostego kodu: listbox1.selectedItem. teraz używam ListView, jak mogę uzyskać SelectedItem lub Selectedindex z ListView.Jak uzyskać SelectedItem lub SelectedIndex ListView w vb.net

+0

Twoje pytanie jest takie proste i nie powinno być zadawane na takich stronach internetowych. Możesz zrobić wyszukiwanie zamiast tego, umieszczając je tutaj. 'ListView.SelectedItems [0]' – MahanGM

+3

@MahanGM nie zrozumiałeś mojego pytania. Zapytałem, "w jaki sposób otrzymam wybrany przedmiot?". mam na myśli "Kiedy kliknąłem na jakiś przedmiot (nie wspomniany już jak ty" [0] ") został wybrany, teraz jak aplikacja wie, który element (według Indeksu lub innego) jest teraz Wybrany." – Shahrukh

Odpowiedz

6

Oto odpowiedź, że znalazłem na moje pytanie:

urlList1.FocusedItem.Index 

i otrzymuję wartość wybranego elementu przez:

urlList1.Items(urlList1.FocusedItem.Index).SubItems(0).Text 
10

zwraca kolekcje wybranych pozycji i indeksów za pośrednictwem właściwości SelectedItems i SelectedIndices. Zwróć uwagę, że te kolekcje są puste, jeśli żaden element nie jest aktualnie wybrany (lst.SelectedItems.Count == 0). Pierwszy wybrany element to lst.SelectedItems[0]. Indeks tej pozycji w kolekcji Items to lst.SelectedIndices[0]. Więc w zasadzie

lst.SelectedItems[0] 

jest taka sama jak

lst.Items[lst.SelectedIndices[0]] 

Można również użyć pola wyboru. Ustaw dla tego CheckBoxes na true. Dzięki właściwościom i CheckedIndices widać, które elementy są zaznaczone.

0
ListView.FocusedItem.Index 

lub użyć foreach pętli jak ten

int index= -1; 
foreach (ListViewItem itm in listView1.SelectedItems) 
{ 
    if (itm.Selected) 
    { 
     index= itm.Index; 
    } 
} 
6

VB6: Listview1.selecteditem

VB10: Listview1.FocusedItem.Text

+0

Chcę podkreślić, że Excel VBA (2010 i prawdopodobnie inne) zachowują się jak VB6. –

0

na przykład, jeśli chcesz wybrać ten sam element w listbox przy użyciu ListView, można użyć Private Sub ListView1_SelectedIndexChanged (ByVal nadawcy jako system. Object, ByVal e As System.EventArgs) Uchwyty ListView1.SelectedIndexChanged

For aa As Integer = 0 To ListView1.SelectedItems.Count - 1 
     ListBox1.SelectedIndex = ListView1.SelectedIndices(aa) 
    Next 
End Sub 
2
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 
0

Proszę spróbować to dla Pierwsze kolumny indeks

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

Witamy w StackOverflow. Możesz rozważyć dostarczenie komentarzy do kodu lub rozszerzenie odpowiedzi, aby pomóc najszerszej grupie odbiorców i zachęcić do przejęcia. ["Spójność jest akceptowalna, ale pełniejsze wyjaśnienia są lepsze."] (Http://stackoverflow.com/help/how-to-answer) – gfullam

Powiązane problemy