Recupere evenement clique d'un user control dans la feuille parente [Résolu]

Signaler
Messages postés
178
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
30 juillet 2008
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Re bonjour,

Je pose une derniere question aujourd'hui :-)

Je viens d'ecire un user control qui genere dynamiquement un bouton et l'evenement clique qui va avec.

Et j'aimerai récuperer dans la fenetre parente l'evenement clique du bouton de mon user control.

Par exemple je clique sur le bouton de mon user control et j'affiche dans un label situé sur la feuille parente "bonjour".

Je pense que je dois utiliser les delegué mais je vois pas trop comment.
Comment m'y prendre ?

Merci.

8 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Voici une source rien que pour toi :

http://www.csharpfr.com/code.aspx?ID=33709

Sébastien FERRAND
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
il faut que tu déclares un nouvelle évènement dans ton usercontrol :



public event EventHandler ClickButton;



et quand tu reçois le clic sur le bouton, tu fais ca :



if (ClickButton != null) {

ClickButton(this, EventArgs.Empty);

}

Sébastien FERRAND
Messages postés
178
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
J'ai pas saisie la.

comment je vais savoir dans mon formulaire parent que j'ai cliqué sur le bouton de mon user control ?
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Dans ton user control tu déclare l'eventHandler de Sebmafate,

et dans ta form parent, tu t'abonnes à ClickButton.

(de mémoire, dans le constructeur des objet de la form, dans la section
"Form", tu rajoutes, this.ClickButton += new le_delegue(fonction_todo);



et si tu fais Tab 2 x, ca te fais direct le squelette de la fonction : fonction_todo()

Je sais pas si g été clair :)
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
bon, je reprends... moi vite



donc dans ton usercontrol :

tu vas définir un nouvel évènement :



public event EventHandler ButtonClick;



toutjours dans ton usercontrol, tu double cliques sur ton bouton pour ajouter ceci à l'évènement Click:



if (ButtonClick != null) {

ButtonClick(this, e); // le e est en fait l'argument de ton handle

}



maintenant, il ne te reste plus qu'à aller dans ton formulaire et a
t'abonner à l'évènement ButtonClick de ton usercontrol... qui est en
réalité branché sur l'évènement Click de ton bouton.


Sébastien FERRAND
Messages postés
178
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
Désolé mais j'ai pas compris encore, je vais essayer de me plonger ds le mecanisme des delegues et evenements.
Messages postés
178
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
Merci beaucoup.

C'est super sympa.

bonne journée.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32