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

johnnous 100 Messages postés jeudi 3 mars 2005Date d'inscription 24 mai 2013 Dernière intervention - 5 déc. 2008 à 13:16 - Dernière réponse : billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention
- 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
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 5 déc. 2008 à 14:06
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
---------------------

Merci billou_13 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de billou_13
Meilleure réponse
leprov 1163 Messages postés vendredi 23 juillet 2004Date d'inscription 21 octobre 2010 Dernière intervention - 5 déc. 2008 à 15:18
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

Merci leprov 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de leprov
johnnous 100 Messages postés jeudi 3 mars 2005Date d'inscription 24 mai 2013 Dernière intervention - 5 déc. 2008 à 15:46
0
Merci
merci
genial

Jean louis
Commenter la réponse de johnnous
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 5 déc. 2008 à 16:02
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.