En Visual Basic, un combobox (cuadro combinado) permite al
usuario seleccionar un elemento de una lista desplegable o
ingresar texto directamente en el cuadro. Aquí te muestro
algunos códigos comunes para trabajar con comboboxes:
Agregar elementos a un combobox:
Código
' Agregar un solo elemento
[Link]("Elemento 1")
' Agregar varios elementos
Dim elementos() As String = {"Elemento 1", "Elemento 2", "Elemento 3"}
[Link](elementos)
' Insertar un elemento en una posición específica
[Link](0, "Elemento antes del primero")
Obtener el elemento seleccionado:
Código
' Obtener el texto del elemento seleccionado
Dim elementoSeleccionado As String = [Link]
' Obtener el índice del elemento seleccionado
Dim indiceSeleccionado As Integer = [Link]
' Obtener el objeto asociado al elemento seleccionado (si se usa
ItemData)
Dim objetoAsociado As Object = [Link]
Manejar el evento de cambio de selección:
Código
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As
EventArgs) Handles [Link]
' Código a ejecutar cuando cambia la selección
Dim elemento As String = [Link]()
[Link]("Elemento seleccionado: " & elemento)
End Sub
Utilizar ItemData para asociar datos a los elementos:
Código
' En la carga del formulario o donde se llenan los datos:
[Link]("Elemento 1")
[Link](0) = 10 ' Asociar el valor 10 al primer elemento
[Link]("Elemento 2")
[Link](1) = 20 ' Asociar el valor 20 al segundo elemento
' En el evento SelectedIndexChanged:
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As
EventArgs) Handles [Link]
Dim indice As Integer = [Link]
Dim valorAsociado As Integer = CInt([Link](indice))
[Link]("Valor asociado: " & [Link]())
End Sub
Ejemplo completo de llenado de combobox desde una base de
datos:
Código
Private Sub CargarDatosDesdeBD()
Dim conexion As New OleDbConnection("Cadena de conexión a la base de
datos") ' Reemplazar con tu cadena de conexión
Dim comando As New OleDbCommand("SELECT CampoMostrar, CampoValor FROM
Tabla", conexion) ' Reemplazar con tu consulta
Dim lector As OleDbDataReader
Try
[Link]()
lector = [Link]()
While [Link]()
Dim item As String = lector("CampoMostrar").ToString()
Dim valor As Integer = CInt(lector("CampoValor")) ' Asumiendo
que el valor es un entero
[Link](item)
[Link]([Link] - 1) = valor
End While
Catch ex As Exception
[Link]("Error al cargar datos: " & [Link])
Finally
If Not lector Is Nothing Then
[Link]()
End If
If Not conexion Is Nothing Then
[Link]()
End If
End Try
End Sub
En este ejemplo, se asume que tienes una base de datos y una
tabla con dos columnas: una para el texto que se mostrará en el
combobox y otra para un valor asociado. Debes reemplazar
"Cadena de conexión a la base de datos", "SELECT
CampoMostrar, CampoValor FROM Tabla" con tu información
específica. También debes agregar la referencia al proveedor de
datos (por ejemplo, OleDb) en tu proyecto.