sábado, 9 de marzo de 2013

Llenar un combobox desde una clase

A continuación tenemos un ejemplo que permitirá cargar datos a un control "combobox" desde una clase. 

Con el evento SelectedIndexChange podremos recuperar los valores alojados en cada elemento del combobox.


Código fuente


Paso 1: Agregamos una clase ucComboBox 

Public Class ucComboBox

    Public Value As Object
    Public Description As String

    Public Sub New(ByVal NewValue As ObjectByVal NewDescription As String)
        Value = NewValue
        Description = NewDescription
    End Sub

    Public Overrides Function ToString() As String
        Return Description
    End Function

End Class

Paso 2: Cargamos los valores en el evento Load del formulario.

Private Sub Form2_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
Try
        Dim Codigo() As Integer = {1, 2, 3}
        Dim Productos() As String = {"Producto A""Producto B""Producto C"}

        'Agregamos los elementos al ComboBox
        For index As Integer = 0 To Productos.Length - 1
            ComboBox1.Items.Add(New ucComboBox(Codigo(index), Productos(index)))
        Next

        ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList

Catch ex As Exception
  MessageBox.Show(ex.Message, "vb.net", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
       End Try
End Sub

Paso 3: Validamos el SelectedIndexChanged del combobox.

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox1.SelectedIndexChanged
Try
     ' Capturamos el items Seleccionado
     Dim oCombo As ucComboBox
    oCombo = ComboBox1.SelectedItem
' Asignamos los valores capturados a las cajas de texto
        txtCodigo.Text = oCombo.Value
        txtNombre.Text = oCombo.Description

Catch ex As Exception
                          MessageBox.Show(ex.Message, "vb.net", _
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
End sub

No hay comentarios:

Publicar un comentario