Change-Ereignis des ComboBox-Steuerelements für Visual Basic 6.0-Benutzer

Aktualisiert: November 2007

In Visual Basic 6.0 wurde das Change-Ereignis des ComboBox-Steuerelements ausgelöst, wenn der Text im Texteingabebereich des Steuerelements geändert wurde. Es wurde nicht ausgelöst, wenn ein Element aus dem Listenbereich des Steuerelements ausgewählt wurde. Das Change-Ereignis wird nicht ausgelöst, wenn der Text eines Elements in der Liste programmgesteuert geändert wurde.

Wenn Sie ein Visual Basic 6.0-Projekt zu Visual Basic 2008 migrieren, wird dem Change-Ereignis des ComboBox-Steuerelements das TextChanged-Ereignis des ComboBox-Steuerelements von Visual Basic 2008 zugeordnet. Das Verhalten des TextChanged-Ereignisses weicht von dem des Change-Ereignisses ab. Dieser Unterschied kann zu unerwünschten Ergebnissen im Code führen.

In Visual Basic 2008 wird das TextChanged-Ereignis jedes Mal ausgelöst, wenn sich der Text aus irgendeinem Grund ändert, z. B.:

  • Wenn der Teil im Texteingabebereich geändert wird.

  • Wenn ein Element aus der Liste ausgewählt wird.

  • Wenn ein Listenelement programmgesteuert geändert wird.

  • Wenn die Add-Methode aufgerufen wird.

Das folgende Beispiel veranschaulicht diese Unterschiede im Verhalten:

' 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

Die nächsten Schritte

  • Legen Sie einen Haltepunkt in der TextChanged-Ereignisprozedur fest, und führen Sie den Code aus, um herauszufinden, wo das Ereignis ausgelöst wird. Ändern Sie gegebenenfalls den Code.

Siehe auch

Konzepte

ComboBox-Steuerelement für Visual Basic 6.0-Benutzer