このような質問は他にもあると思いますが、何らかの理由で誰もこの問題を抱えていないようです. このようにロード時に作成する2列のリストビューを作成しようとしています。
With lstShipMethods
.View = View.Details
.FullRowSelect = True
.HeaderStyle = ColumnHeaderStyle.None ' set to whatever you need
.Columns.Clear() ' make sure collumnscollection is empty
' Add 3 columns
.Columns.AddRange(New ColumnHeader() {New ColumnHeader(), New ColumnHeader()})
End With
lstShipMethods.Items.Add(New ListViewItem({"col1data", "col2data1"}))
lstShipMethods.Items.Add(New ListViewItem({"col1data", "col2data2"}))
うまく入力されますが、このように選択したアイテム列からデータを取得しようとすると
Private Sub lstShipMethods_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstShipMethods.SelectedIndexChanged
Dim val As String = lstShipMethods.FocusedItem.SubItems(1).Text
MessageBox.Show(val)
End Sub
最初のクリックの後、行 1 の 2 番目の列とも呼ばれる両方の値が常に表示され、行 2 が に出力されますMessageBox
。