Salve a tutti!
Sto cercando di imparare un po' di Visual Basic (.NET) e mi sono subito bloccato con un errore che non riesco proprio a comprendere.
Ho una listview popolata con dati estratti da un database e fin lì nessun problema.
Vorrei che al cambio di selezione dell'item della listview, mi recuperi un valore dell'item e lo scriva in una label nello stesso form.
Per fare questo uso il seguente codice:
Il codice commentato è una prova che ho fatto leggendo la risposta a questo topic: http://forum.html.it/forum/showthrea...b.net+listview ma il risultato è identico.codice:Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged Dim idpersona As String = ListView1.SelectedItems.Item(0).SubItems(3).Text 'Dim itemse As ListView.SelectedListViewItemCollection = ListView1.SelectedItems 'Dim idpersona As String = itemse(0).SubItems(3).Text Label3.Text = idpersona End Sub
Il problema è che funziona con la prima selezione, ma con la successiva mi dà sempre errore e precisamente il debug dice: "InvalidArgument=Value of '0' is not valid for 'index'.
Parameter name: index" riferito alla seconda riga ovvero "Dim idpersona As String = ListView1.SelectedItems.Item(0).SubItems(3).Text"
Non riesco a capire cosa sbaglio.
L'item 0, se ho capito bene dovrebbe essere il primo in caso di selezioni multiple e l'unico in caso di una listview che non permette selezioni multiple (come la mia). Quindi ci dovrebbe sempre essere visto che stiamo parlando di comandi che vengono eseguiti in seguito a "SelectedIndexChanged".
Mi sapete spiegare cosa sbaglio?

Rispondi quotando
