2013-10-15 3 views
0

Получаю, что есть другие вопросы, подобные этому, но по какой-то причине никто не имеет этой проблемы. Я пытаюсь заполнить список из 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 

после первой нажмите на него всегда будет показывать оба значения аки второго столбца из строки одного а вторая строка будет выводиться в MessageBox.

+0

Я отредактировал ваше название. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

1

Вместо этого вы можете использовать событие ItemSelectionChanged.

Private Sub lstShipMethods_SelectedIndexChanged(sender As System.Object, e As ListViewItemSelectionChangedEventArgs) Handles lstShipMethods.ItemSelectionChanged 
    If e.IsSelected Then 
     Dim val As String = lstShipMethods.FocusedItem.SubItems(1).Text 
     MessageBox.Show(val) 
    End If 
End Sub 
+1

Слава богу ... это заставляло меня болтать – ed209

Смежные вопросы