Evento de cambio de control ComboBox para usuarios de Visual Basic 6.0

Actualización: noviembre 2007

En Visual Basic 6.0 el evento Change del control ComboBox se produce cuando se modifica el texto de la parte de entrada de texto del control; no se produce cuando se selecciona un elemento en la parte de lista. La modificación mediante programación del texto de un elemento de la lista no produce el evento Change.

Cuando un proyecto se migra a Visual Basic 2008, el evento Change del control ComboBox se asigna al evento TextChanged del control Visual Basic 2008ComboBox. El comportamiento del evento TextChanged difiere del comportamiento del evento Change; esta diferencia puede provocar resultados inesperados en el código.

El evento TextChanged de Visual Basic 2008 se provoca cada vez que cambia el texto por cualquier razón, por ejemplo:

  • Cuando se modifica la parte de entrada de texto.

  • Cuando se selecciona un elemento de la lista.

  • Cuando se modifica un elemento de lista mediante programación.

  • Cuando se llama al método Add.

El siguiente ejemplo muestra las diferencias de comportamiento.

' Visual Basic 6.0
Private Sub Form_Load()
   ' Does not raise the Change event.
   Combo1.AddItem "A"
End Sub
Private Sub Form_Click()
   ' Does not raise the Change event.
   Combo1.List(0) = "B"
End If
' Visual Basic
Private Sub Form1_Load()
   ' Raises the TextChanged event.
   ComboBox1.Items.Add("A")
End Sub
Private Sub Form1_Click(ByVal sender As System.Object, ByVal _
e As System.EventArgs)
   ' Uses the SetItemString method from the VB6 compatibility library; 
   ' there is no equivalent method in Visual Basic.
   ' Raises the TextChanged event.
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemString(ComboBox1, ComboBox1.Items.Count, "B")
End Sub

Qué se ha de hacer a continuación

  • Establezca un punto de interrupción en el procedimiento del evento TextChanged y ejecute el código para determinar dónde se produce. Modifique el código según sea necesario.

Vea también

Conceptos

Control ComboBox para usuarios de Visual Basic 6.0