Salut. J'ai un UserControl qui contient une zone de texte. Je voulais accéder à l'événement textchanged de la zone de texte mais dans les propriétés d'événement de la commande usercontrol je ne vois pas les événements pour la zone de texte. Comment puis-je exposer et gérer des événements particuliers des contrôles enfants à partir du UserControl publiquement exposé dans Winforms avec C#.exposer et déclencher l'événement d'un contrôle enfant dans un usercontrol en C#
23
A
Répondre
36
Vous pouvez surface un nouvel événement et passer des abonnements directement à travers le contrôle, si vous aimez:
public class UserControl1 : UserControl
{
// private Button saveButton;
public event EventHandler SaveButtonClick
{
add { saveButton.Click += value; }
remove { saveButton.Click -= value; }
}
}
1
Exposez l'intégralité de TextBox en tant que propriété publique dans le contrôle utilisateur et abonnez-vous à ses événements comme vous le souhaitez.
Exemple:
class myUserControl: UserControl {
private TextBox _myText;
public TextBox MyText { get {return _myText; } }
}
Après avoir fait cela, vous pouvez souscrire à l'un de ses événements comme ceci:
theUserControl.MyText.WhatEverEvent += ...
Hope this helps!
+0
merci, je l'avais fait la même chose que maintenant. Était à la recherche d'une solution élégante qui a été fournie ci-dessus.Merci de votre aide. + 1 –
Questions connexes
- 1. Comment exposer et déclencher des événements personnalisés pour un contrôle d'utilisateur winforms vb.net
- 2. Passer le focus de l'élément enfant dans un contrôle UserControl à parent dans WPF
- 3. ASP.NET UserControl n'initialise pas Controls enfant
- 4. Winform - qui est un dernier événement à déclencher par usercontrol
- 5. Comment exposer un ITemplate via un contrôle utilisateur?
- 6. Contrôle vs UserControl dans WinForms?
- 7. Passer des valeurs d'un contrôle Usercontrol à un autre UserControl!
- 8. C# WinForms UserControl Mouse Aide de l'événement
- 9. Comment exposer la propriété visible d'une image dans un contrôle utilisateur (C#)?
- 10. écrire un contrôle com en C# et l'utiliser dans MFC
- 11. C# UserControl Héritage
- 12. Affichage d'une propriété ImageSource dans un contrôle UserControl à utiliser dans Blend
- 13. ViewState, UserControl et IsPostback
- 14. Comment informer un contrôle de conteneur qu'un contrôle enfant a changé de taille?
- 15. C++: Modèle de statut et de contrôle
- 16. Interaction MasterPage et UserControl
- 17. C# IDataErrorInfo et la propriété enfant
- 18. C# génériques usercontrol
- 19. Erreur d'affichage Usercontrol dans C# Designer
- 20. Comment déclencher un événement en utilisant addHandler
- 21. Est-il possible d'ajouter un UserControl à un contrôle Composite?
- 22. Déclencher un événement javascript à partir d'un contrôle utilisateur ASP.NET et gérer dans la page ASP.NET
- 23. Liaison à un élément dans un UserControl
- 24. Quand et où compile UserControl
- 25. Process.start en C#, ne pas déclencher
- 26. Contrôle TreeView en C#, select() et focus
- 27. C# usercontrol en fonction de la bibliothèque de classes d'utilisateurs
- 28. Exposer des données dans un flux d'atomes
- 29. UserControl - textbox accès à l'intérieur UserControl dans un formulaire web
- 30. Problème d'événement C# .NET UserControl
Chose impressionnante! J'ai fait quelque chose de similaire, en ajoutant explicitement un gestionnaire d'événements car j'avais exposé publiquement le contrôle enfant via le contrôle usercontrol. Votre suggestion est la manière la plus propre de celui-ci! Merci! –
Malgré son élégance, cette solution a un inconvénient majeur: l'argument 'sender' transmis au gestionnaire sera le Button, pas le UserControl ... Cela rend impossible l'utilisation du même gestionnaire pour plusieurs instances du contrôle –
rien d'autre pour faire ce travail? d'une certaine manière, le gestionnaire d'événements ajouté ne fonctionne pas. – Nap