Este es el codigo del evento Enter del combo
Código C++:
Ver originalPrivate Sub CBCategoria_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBCategoria.Enter
CBCategoria.Items.Clear()
Dim arreglo As String(,) = func.Extra_LlenaCombo("cat_prod", "cp_id,cp_desc")
ReDim cp_id(arreglo.Length / 2 - 1)
Dim arr_descs As String()
ReDim arr_descs(arreglo.Length / 2 - 1)
For i As Integer = 0 To arreglo.Length / 2 - 1
cp_id(i) = arreglo(0, i)
arr_descs(i) = arreglo(1, i)
Next
CBCategoria.Items.AddRange(arr_descs)
If BtnPrEditar.Text = "Guardar" Then
Dim index As Integer = 0
For index = 0 To CBCategoria.Items.Count - 1
If CBCategoria.Items.Item(index) = cp_desc Then
Exit For
End If
Next
CBCategoria.SelectedIndex = index
End If
End Sub
la funcion Extra_LlenaCombo() es la que reliza la consulta en la base de datos y llena un arreglo con el id y descripcion que despues es copiado en la variable arreglo, luego como es de dos dimensiones, creo otro arreglo de 1 dimension donde le paso todas las desc y en otro arreglo guardo los ids (que es lo que uso cuando hago un insert o update).
Espero le entiendan a mi explicacion o les quede claro el codigo. Gracias.
PD: no olviden que funciona perfectamente estando fuera de un tabcontrol (es decir, directamente puesto en el form).
PD2 :La ultima parte del codigo esta mal por asi decirlo ya que existe la funcion find para seleccionar un elemento del combo que coincida con el texto que le indiques, voy a corregirlo.