Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/12/2011, 10:52
LOD_Fredy
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: combobox dentro de un tabcontrol se llena dos veces

Este es el codigo del evento Enter del combo
Código C++:
Ver original
  1. Private Sub CBCategoria_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBCategoria.Enter
  2.         CBCategoria.Items.Clear()
  3.         Dim arreglo As String(,) = func.Extra_LlenaCombo("cat_prod", "cp_id,cp_desc")
  4.         ReDim cp_id(arreglo.Length / 2 - 1)
  5.         Dim arr_descs As String()
  6.         ReDim arr_descs(arreglo.Length / 2 - 1)
  7.         For i As Integer = 0 To arreglo.Length / 2 - 1
  8.             cp_id(i) = arreglo(0, i)
  9.             arr_descs(i) = arreglo(1, i)
  10.         Next
  11.         CBCategoria.Items.AddRange(arr_descs)
  12.  
  13.         If BtnPrEditar.Text = "Guardar" Then
  14.             Dim index As Integer = 0
  15.             For index = 0 To CBCategoria.Items.Count - 1
  16.                 If CBCategoria.Items.Item(index) = cp_desc Then
  17.                     Exit For
  18.                 End If
  19.             Next
  20.             CBCategoria.SelectedIndex = index
  21.         End If
  22.     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.

Última edición por LOD_Fredy; 03/12/2011 a las 11:21