Gestionnaires d'évènements ...

Résolu
rpillot Messages postés 7 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 27 février 2006 - 31 janv. 2006 à 17:35
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 31 janv. 2006 à 17:53
Bonjour,

J'ai 2 évènements ( KeyDown et EditValueChanged ) qui se court-circuitent correspondant à 2 gestionnaires d'évènements :


this.lueVILLES.Properties.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lueVILLES_Properties_KeyDown);


this.lueVILLES.EditValueChanged += new System.EventHandler(this.lueVILLES_EditValueChanged);


J'aimerais, dans certains cas, que seulement un des deux soit "actifs" ou pouvoir au moins le suspendre.

Est-ce possible ? Si oui comment ?

Merci pour vos réponses.

1 réponse

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 99
31 janv. 2006 à 17:53
Salut,

J'aurais 2 pistes pour toi :

- te désabonner de l'event dont tu ne veux plus
KeyEventHandler _keyDownEventHandler; // membre de la classe
...
this._keyDownEventHandler = new System.Windows.Forms.KeyEventHandler(this.lueVILLES_Properties_KeyDown); // constructeur, etc
...
this.lueVILLES.Properties.KeyDown += this._keyDownEventHandler; // abonnement
...
this.lueVILLES.Properties.KeyDown -= this._keyDownEventHandler; // désabonnement

- conserver les abonnements, mais tester un booléen (du genre "mustHandleKeyDown") au début de la méthode associée afin de savoir si il faut faire le traitement.

/*
coq
MVP Visual C#
*/
3