exposer et déclencher l'événement d'un contrôle enfant dans un usercontrol en c#

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 de l'événement usercontrol, Je ne vois pas les événements de la zone de texte. Comment puis-je exposer et gérer des événements particuliers des contrôles enfants du UserControl exposé publiquement dans Winforms avec C#.

23
demandé sur Joachim Prinsloo 2009-06-03 09:20:51

2 réponses

Vous pouvez surfacer un nouvel événement et passer les abonnements directement au contrôle, si vous le souhaitez:

public class UserControl1 : UserControl 
{
    // private Button saveButton;

    public event EventHandler SaveButtonClick
    {
        add { saveButton.Click += value; }
        remove { saveButton.Click -= value; }
    }
}
37
répondu Matt Hamilton 2013-02-11 08:30:59

Exposez la zone de texte entière en tant que propriété publique dans le contrôle de l'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 cela, vous pouvez vous abonner à l'un de ses événements comme ceci:

theUserControl.MyText.WhatEverEvent += ... 

Espérons que cela aide!

1
répondu Galilyou 2009-06-03 05:24:36