Dim item As ListViewItem
If lvwInvoice.SelectedItems.Count > 0 Then
item = lvwInvoice.SelectedItems(0)
MsgBox(item.Text)
MsgBox(item.SubItems(1).Text)
End If
I used the example, and it worked - sort of. The first time I clicked on an
item, it returned the values fine. But when I clicked on another item I got
the following error:
InvalidArgument=Value of '0' is not valid for 'index'.
This is the code:
Dim item = lvCollection.SelectedItems(0)
cmbCond.Text = item.Text
txtQty.Text = item.SubItems(1).Text
Are you using an IF statement to make sure that an item is selected, like I
did in my original example?
If you are writing your code in the listview's SelectedIndexChanged event,
when you select a second item, the first item is de-selected and the
SelectedIndexChanged event fires. At that point there is no SelectedItems(0).
I guess that is what I am having a hard time understanding....how can I get
the selected item?
Currently, I am using the SelectedIndexChanged event. Is the
SelectedIndexChanged event the correct way to go and if so how do I get the
item and any other item clicked?
Dim itemall As ListView.SelectedListViewItemCollection =
lvCollection.SelectedItems
Dim item As ListViewItem
For Each item In itemall
cmbCond.Text = item.Text
txtQty.Text = item.SubItems(1).Text
cmbLocation.Text = item.SubItems(2).Text
txtColComment.Text = item.SubItems(3).Text
Next
But it seems a bit overdone, since my listview is not multi select. Is
there a more straightforward way to get what was selected?
If lvCollection.SelectedItems > 0 Then
item = lvCollection.SelectedItems(0)
cmbCond.Text = item.Text
txtQty.Text = item.SubItems(1).Text
cmbLocation.Text = item.SubItems(2).Text
txtColComment.Text = item.SubItems(3).Text
End If
Kerry Moorman
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.