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.