Comment cree un evement dans un user control [Résolu]

Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Dernière intervention
24 mai 2013
- - Dernière réponse : billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
- 5 déc. 2008 à 16:02
bonjour
j'ai cree un usercontol avec une texbox
et je voudrais dans mon ecran principal recupere l'evenement click_textbox
il me semble qu'il cree un evenement mais je n'y arrive pas
qulequ'un auais un exemple ?
merci

Jean louis
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
3
Merci
Bonjour,

Si je ne me trompe, tu as deux possibilité:

1) Tu donnes accès à ton textbox et mettant une propriété publique dans ton usercontrol.
public TextBox MaTextBox { get { return textBox; }
Ainsi, ta form pourra intercepter le OnClick de ton TextBox

2) Tu propage l'événement OnClick de ta textbox au niveau de ton usercontrol.
Dans le code de ton usercontrol:
public event EventHandler MaTextBoxClick;

//Evénement click au niveau de ton user control
private void textBox_Click(object sender, EventArgs e)
{
   //Propage l'événement
   if (MaTextBoxClick!= null)
     MaTextBoxClick(sender, e);
}
Ainsi, tu pourras t'abonner à cet événement via l'interface designer lorsque tu déposera ton usercontrol. L'événement apparaitra dans la liste des événements.

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de billou_13
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
21 octobre 2010
3
Merci
une meilleure solution a tout ca : créer une event propriété dans ton user control qui permet de s'abonner directement au click de la textbox de manière transparente au travers du user control :

//dans le user control
public event EventHandler MyTextBoxClick
{
add
{
MyTextBox.Click += value;
}
remove
{
MyTextBox.Click -= value;
}
}

//dans le composant qui possède le usercontrol
MyUserControl.MyTextBoxClick += new EventHandler(MyUserControl_MyTextBoxClick);

Pour finir, tu peux mettre dans ta classe de ton usercontrol l'attribut "DefaultEvent" sur la déclaration de ta classe pour que cet abonnement se fasse de manière automatique lorsque tu double clique sur ton user control dans le designer (ce qui évite de t'abonner au click sur le user control lorsque tu double click) :

[DefaultEvent("MyTextBoxClick")]
public class MyUserControl :UserControl

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de leprov
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Dernière intervention
24 mai 2013
0
Merci
merci
genial

Jean louis
Commenter la réponse de johnnous
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonsoir,

Merci beaucoup leprov pour cette solution, je ne connaissais pas. C'est noté !

Bon week-end (et pas trop de folie !),

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.