あなたが質問で知っているように、私が欲しいもの。リストボックスを使用していました。 ListBox
では、簡単なコード行で選択したアイテムを取得できます:listbox1.SelectedItem
。今、私はListView
を使用しています。SelectedItem
またはSelectedIndex
のListView
を取得する方法です。
これが私の質問に対する答えです。
urlList1.FocusedItem.Index
そして、私は選択されたアイテムの値を取得しています:
urlList1.Items(urlList1.FocusedItem.Index).SubItems(0).Text
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
プロパティを使用して、チェックされているアイテムを確認できます。
VB6:Listview1.selecteditem
VB10:Listview1.FocusedItem.Text
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
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
ListView.FocusedItem.Index
または、このようにforeachループを使用できます
int index= -1;
foreach (ListViewItem itm in listView1.SelectedItems)
{
if (itm.Selected)
{
index= itm.Index;
}
}
列インデックスを取得するためにこれを試してください
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