Credo che a chi ha deciso di far fuori la vecchia e cara proprietà ItemData dalle ComboBox e ListBox fischieranno spesso le orecchie.![]()
In VB .NET questo problema può essere risolto in diversi modi, il più semplice dei quali mi sembra quello di ricorrere ad una struttura di dati.
In pratica occorre creare una struttura formata da due campi, nel tuo caso id e nome
e popolare la ListBox con elementi di questa strutturacodice:Public Structure IdNome Public Id As Integer Public Nome As String End Structure
Per fare in modo che la ListBox elenchi solo i campi Nome occorre effettuare l'overriding del metodo ToString, cosa che può essere fatta anche all'interno della strutturacodice:Dim oIdNome As IdNome oIdNome.Id = ... oIdNome.Nome = ... ListBox1.Items.Add(oIdNome) ...
Al momento della selezione di un elemento nella ListBox, si può riportare l'elemento selezionato nella struttturacodice:Public Structure IdNome Public Id As Integer Public Nome As String Public Overrides Function ToString() As String Return Nome End Function End Structure
con la opportuna conversione di tipo.codice:oIdNome = CType(ListBox1.Items(ListBox1.SelectedIndex), oIdNome)
Spero ti sia utile.
![]()

Rispondi quotando
