Como implementar un esquema de Texto/Valor en un ComboBox con Visual Basic .NET
En un formulario de HTML los "Select" o Combos tienen una propiedad value que es independiente del texto mostrado, esto es muy cómodo y práctico, por desgracia en Visual Basic no funciona así. No obstante es sencillo de implementar tal como se muestra en este código.
En un Módulo ponemos:
Class item Public Index As Integer Public Description As String
Public Sub New(ByVal IDx As Integer, ByVal DescriptionX As String) Index = IDx Description = DescriptionX End Sub
Public Overrides Function ToString() As String Return Description End Function
Public Function Value() As Integer Return Index End Function End Class |
Y para utilizarlo en un formulario insertamos un ComboBox (Por default tomará el nombre ComboBox1)
y ponemos en el Formulario el sigueinte código:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.Items.Add(New item(1, "México")) ComboBox1.Items.Add(New item(2, "Brasil")) ComboBox1.Items.Add(New item(3, "USA")) ComboBox1.Items.Add(New item(4, "Colombia")) ComboBox1.Items.Add(New item(5, "Argentina")) End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged MsgBox(ComboBox1.Items(ComboBox1.SelectedIndex).value) End Sub |
y eso es todo, podemos acceder al ID por medio de:
ComboBox1.Items(ComboBox1.SelectedIndex).value
y al texto por medio de:
ComboBox1.Items(ComboBox1.SelectedIndex).toString
|