2012-01-01 74 views
8

正如你所知道的問題,我想要什麼。我正在使用列表框。在Listbox中,我們可以通過一行簡單的代碼獲取選定項目: listbox1.selectedItem。現在我正在使用ListView,我如何獲得ListViewSelectedItemSelectedindex如何在vb.net中獲得SelectedItem或ListIndex的

+0

你的問題是如此簡單,不應該在這些類型的網站上被問到。你可以做一個搜索,而不是在這裏發佈。 'ListView.SelectedItems [0]' – MahanGM 2012-01-01 15:56:03

+3

@MahanGM你不明白我的問題。我問過「我如何得到選定的物品?」。我的意思是「當我點擊某個項目(沒有提到已經像你一樣」[0]「)時,它已被選中。現在應用程序知道哪個項目(按索引或其他)現在被選中。 – Shahrukh 2012-01-01 16:14:07

回答

6

下面是我發現我的問題的答案:

urlList1.FocusedItem.Index 

而且我通過獲取所選項目的值:

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

ListView通過SelectedItemsSelectedIndices屬性返回所選項目和索引的集合。請注意,如果當前未選擇任何項目(lst.SelectedItems.Count == 0),則這些集合爲空。第一個選擇的項目是lst.SelectedItems[0]Items集合中該物品的索引是lst.SelectedIndices[0]。所以基本上

lst.SelectedItems[0] 

相同

lst.Items[lst.SelectedIndices[0]] 

您還可以使用複選框。爲此設置CheckBoxestrue。通過CheckedItemsCheckedIndices屬性,您可以看到哪些項目被檢查。

0
ListView.FocusedItem.Index 

,或者您可以使用foreach循環這樣

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

VB6: Listview1.selecteditem

VB10: Listview1.FocusedItem.Text

+0

我想指出,Excel VBA(2010和其他人)的行爲與VB6相同。 – 2017-07-27 13:51:16

0

例如,如果你想使用一個ListView選擇在列表框中相同的項目,你可以使用 私人小組ListView1_SelectedIndexChanged(BYVAL發件人爲系統。對象,BYVALË作爲System.EventArgs)把手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

請嘗試一下本作獲得列索引

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

歡迎來到StackOverflow。您可能需要考慮提供代碼評論或以其他方式擴展您的答案,以幫助最廣泛的受衆羣體並鼓勵積極參與。 [「簡潔是可以接受的,但更全面的解釋更好。」](http://stackoverflow.com/help/how-to-answer) – gfullam 2017-01-30 14:59:45

相關問題