Partager via


Événement Change du contrôle ComboBox pour les utilisateurs de Visual Basic 6.0

Mise à jour : novembre 2007

Dans Visual Basic 6.0, l'événement Change du contrôle ComboBox est déclenché lorsque la partie de texte de ce dernier est modifiée ; il ne l'est pas lorsqu'un élément est sélectionné dans la partie de liste du contrôle. La modification par programme du texte d'un élément dans la liste ne déclenche pas l'événement Change.

Lorsqu'un projet Visual Basic 6.0 est migré vers Visual Basic 2008, l'événement Change du contrôle ComboBox est mappé à l'événement TextChanged du contrôle Visual Basic 2008ComboBox. Le comportement de l'événement TextChanged diffère de celui de l'événement Change ; cette différence peut produire des résultats imprévus dans votre code.

L'événement Visual Basic 2008TextChanged est déclenché chaque fois que le texte change, pour quelque raison que ce soit, par exemple :

  • Lorsque la partie de texte est modifiée.

  • Lorsqu'un élément est sélectionné dans la liste.

  • Lorsqu'un élément de liste est modifié par programme.

  • Lorsque la méthode Add est appelée.

L'exemple suivant illustre ces différences de comportement.

' 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

Étape suivante

  • Définissez un point d'arrêt dans la procédure événementielle TextChanged, puis exécutez votre code afin de déterminer à quel endroit l'événement est déclenché. Modifiez votre code en conséquence.

Voir aussi

Concepts

Contrôle ComboBox pour les utilisateurs de Visual Basic 6.0