web-dev-qa-db-ja.com

vb.netでListViewのSelectedItemまたはSelectedIndexを取得する方法

あなたが質問で知っているように、私が欲しいもの。リストボックスを使用していました。 ListBoxでは、簡単なコード行で選択したアイテムを取得できます:listbox1.SelectedItem。今、私はListViewを使用しています。SelectedItemまたはSelectedIndexListViewを取得する方法です。

10
Shahrukh

これが私の質問に対する答えです。

urlList1.FocusedItem.Index

そして、私は選択されたアイテムの値を取得しています:

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

ListViewは、SelectedItemsおよびSelectedIndicesプロパティを介して、選択されたアイテムとインデックスのコレクションを返します。現在アイテムが選択されていない場合、これらのコレクションは空であることに注意してください(_lst.SelectedItems.Count = 0_)。最初に選択されるアイテムはlst.SelectedItems(0)です。 Itemsコレクション内のこのアイテムのインデックスはlst.SelectedIndices(0)です。だから基本的に

_lst.SelectedItems(0)
_

と同じです

_lst.Items(lst.SelectedIndices(0))
_

チェックボックスを使用することもできます。これにはCheckBoxesTrueに設定します。 CheckedItemsプロパティとCheckedIndicesプロパティを使用して、チェックされているアイテムを確認できます。

VB6:Listview1.selecteditem

VB10:Listview1.FocusedItem.Text

7
Raphael Estrada
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
2
Kaya Kipgen

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
1
ismail osunlana
ListView.FocusedItem.Index 

または、このようにforeachループを使用できます

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

列インデックスを取得するためにこれを試してください

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
Narinder Rattu