View Full Version : VB.NET ComboBox (Valore + Label)
Con VB.NET 2005 dovrei usare lo strumento ComboBox in maniera che al Popolamento posso assegnare un Valore + una Label, e quindi successivamente alla Selezione di un Item possa estrarre o il Valore o la Label,
ho provato a estendere la Classe ComboBox ma non ci sono riuscito....
cosa mi consigliate di fare ???
Tempo fa era servita una cosa del genere anche a me!
Avevo risolto creando un oggetto (comboBoxItem :fagiano: ) che non aveva niente di diverso dai soliti se non l'override della funzione ToString() dalla quale mi facevo restiltuire la variabile che volevo venisse visualizzata nel ComboBox (questo perchè il ComboBox come anche la ListBox chiamano il metodo ToString() per sapere il testo che devono visualizzare).
Quando dovevo aggiungere un elemento ad un ComboBox non facevo altro che fare:
Dim oggettoDaInserire As comboBoxItem = New comboBoxItem
oggettoDaInserire.Nome = ValoreNome
oggettoDaInserire.Tag = ValoreTag
ComboBox.Items.Add(oggettoDaInserire)
Mentre per recuperare un'oggetto, ad esempio quello selezionato:
Dim oggettoRecuperato As comboBoxItem = ComboBox.SelectedItem
Spero di esserti stato d'aiuto!
'iao
Veramente comodo il tuo metodo, nel frattempo ho fatto questo:
Public Class ExtendComboBox
Private m_value As Integer
Private m_label As String
Public ReadOnly Property Value() As Integer
Get
Return m_value
End Get
End Property
Public ReadOnly Property Label() As String
Get
Return m_label
End Get
End Property
Public Sub New(ByVal Value As Integer, ByVal Label As String)
m_value = Value
m_label = Label
End Sub
Public Overrides Function ToString() As String
Return m_label
End Function
End Class
per popolare la ComboBox:
cmbAgenti.Items.Add(New ExtendComboBox(-valore-, -label-))
per raccogliere il valore selezionato:
Dim ageItem As ExtendComboBox = DirectCast(cmbAgenti.SelectedItem, ExtendComboBox)
ageItem.Value ' per il Valore
ageItem.Label ' per la Label
ti sembra troppo tutto questo ??? :rolleyes:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.