Maison >développement back-end >C++ >Comment puis-je propager des événements des contrôles utilisateur vers le formulaire principal en C# ?

Comment puis-je propager des événements des contrôles utilisateur vers le formulaire principal en C# ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 22:09:40721parcourir

How Can I Propagate Events from User Controls to the Main Form in C#?

Propagation des événements depuis les contrôles utilisateur vers le formulaire principal

Dans la conception de l'interface utilisateur, il est souvent nécessaire de relayer les événements depuis les contrôles personnalisés vers le formulaire ou fenêtre parent. Pour y parvenir, nous devons créer un mécanisme de bouillonnement d'événements, permettant aux événements contrôlés d'atteindre le contexte de niveau supérieur.

Par exemple, considérons un contrôle utilisateur contenant un contrôle numérique haut/bas (NUD). Lorsque la valeur du NUD change, nous souhaitons que le formulaire principal mette à jour une fenêtre d'affichage en conséquence. Cependant, les événements au sein des contrôles utilisateur sont généralement gérés par le contrôle lui-même.

Pour résoudre ce problème, nous créons un gestionnaire d'événements pour le contrôle utilisateur qui est déclenché lorsqu'un événement se produit dans le contrôle. Ce faisant, nous pouvons propager l'événement dans la chaîne et dans le formulaire principal.

Implémentation en C#

Dans la classe de contrôle utilisateur, nous définissons un événement pour l'événement Button1_Click. Cet événement sera déclenché lorsque le bouton du contrôle utilisateur sera cliqué. Nous définissons également un gestionnaire d'événements pour l'événement.

[Browsable(true)] [Category("Action")] 
[Description("Invoked when user clicks button")]
public event EventHandler ButtonClick;

protected void Button1_Click(object sender, EventArgs e)
{
    //bubble the event up to the parent
    if (this.ButtonClick!= null)
        this.ButtonClick(this, e);               
}

Dans la classe de formulaire principale, nous nous abonnons à l'événement ButtonClick du contrôle utilisateur. Lorsque vous cliquez sur le bouton du contrôle utilisateur, le gestionnaire d'événements UserControl_ButtonClick dans le formulaire principal sera déclenché.

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

protected void UserControl_ButtonClick(object sender, EventArgs e)
{
    //handle the event 
}

En utilisant cette approche, nous permettons la propagation des événements du contrôle utilisateur vers le formulaire principal. , permettant une gestion et une réponse transparentes aux interactions des utilisateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn