Evento Control Change di ComboBox per gli utenti di Visual Basic 6.0
Aggiornamento: novembre 2007
In Visual Basic 6.0 l'evento Change del controllo ComboBox viene generato alla modifica del testo nella parte di inserimento testo del controllo e non viene generato quando si seleziona un elemento dall'elenco del controllo. A livello di codice, la modifica del testo di un elemento nell'elenco non genera l'evento Change.
Quando un progetto viene aggiornato a Visual Basic 2008, l'evento Change del controllo ComboBox viene mappato all'evento TextChanged del controllo ComboBox di Visual Basic 2008. Il comportamento dell'evento TextChanged è diverso da quello dell'evento Change e questa differenza può causare risultati indesiderati nel codice.
In Visual Basic 2008 l'evento TextChanged viene generato ogni volta che il testo subisce modifiche per vari motivi, fra cui:
Quando si modifica la parte di inserimento testo.
Quando si seleziona un elemento dall'elenco.
Quando un elemento dell'elenco viene modificato a livello di codice.
Quando si richiama il metodo Add.
Nell'esempio che segue sono mostrate le differenze di funzionamento.
' 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
Ulteriori operazioni
- Impostare un punto di interruzione nella routine eventi TextChanged ed eseguire il codice per determinare dove viene generato. Modificare il codice in base alle esigenze.