78 votes

Arrêtez l'événement selectedIndexChanged selected de comboBox lorsque le formulaire est chargé

J'ai un formulaire avec ComboBox qui fournit une liste déroulante. Sur la comboBox SelectedIndexChanged event , je cours du code, mais je ne veux pas que ce code soit exécuté lors du chargement du formulaire. Malheureusement, lorsque je charge le formulaire (avant de faire une sélection dans la liste déroulante), SelectedIndexChanged des combobox sont activés (je pense que lorsque la liste déroulante est databinding ). Y a-t-il un moyen d'éviter un tel comportement?

152voto

arbiter Points 5503

Si vous souhaitez réagir uniquement lorsque l'utilisateur modifie l'élément sélectionné dans la liste déroulante, il est préférable de s'abonner à SelectionChangeCommitted .

13voto

Shantanu Gupta Points 5678

Vous pouvez simplement dissocier l'événement SelectedIndexChanged , appeler votre fonction fill et lier à nouveau l'événement SelectedIndexChanged . Malheureusement, cela ne fonctionne pas avec une grille.

Par exemple:

 this.cmb.SelectionChanged -= new System.EventHandler(this.cmb_SelectionChanged);
cmb.fill(); //Your function
this.cmb.SelectionChanged += new System.EventHandler(this.cmb_SelectionChanged);
 

10voto

Ranjith Points 21

Veillez à définir la propriété DataSource dans votre fonction onload() après avoir attribué les propriétés ValueMember et Datamember .

Cela vous aidera à résoudre votre problème!

0voto

llaaalu Points 4

Créez une variable bool, définissez-la sur false et définissez-la sur true à la fin de l'événement de chargement de formulaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X