johnnous
Messages postés100Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention24 mai 2013
-
5 déc. 2008 à 13:16
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 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
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 5 déc. 2008 à 14:06
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
---------------------
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 5 déc. 2008 à 15:18
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
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 5 déc. 2008 à 16:02
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
---------------------