Getting the selected item from a listview

G

Guest

Hi all,

How can I get the value stored from the selected item and subitems of a
listview?

Thanks in advance,

George
 
G

Guest

George,

Here is one way to get the first selected item:

Dim item As ListViewItem
If lvwInvoice.SelectedItems.Count > 0 Then
item = lvwInvoice.SelectedItems(0)
MsgBox(item.Text)
MsgBox(item.SubItems(1).Text)
End If
 
G

Guest

Thanks for that - it is straight to the point!

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

It works the first time, but not the second?

Thanks in advance,

George
 
G

Guest

George,

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).

Kerry Moorman
 
G

Guest

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?
 
G

Guest

I was able to get to the following:

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?

George
 
G

Guest

George,

Something like this:

Dim item as ListviewItem

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.

Ask a Question

Top