Maison > développement back-end > C++ > Comment puis-je transmettre des événements d'un contrôle utilisateur à son formulaire parent ?

Comment puis-je transmettre des événements d'un contrôle utilisateur à son formulaire parent ?

Barbara Streisand
Libérer: 2025-01-05 20:35:39
original
560 Les gens l'ont consulté

How Can I Pass Events from a User Control to Its Parent Form?

Transmission d'événements vers le haut de la hiérarchie des contrôles utilisateur

Dans les contrôles utilisateur personnalisés, il est souvent souhaitable de rendre les événements déclenchés dans le contrôle accessibles au principal formulaire. Cela devient évident lorsque l'on tente de gérer des événements provenant de sous-contrôles, tels que des changements de valeur dans un contrôle numérique haut-bas.

Création d'un gestionnaire d'événements

Pour résoudre ce problème défi, créez un gestionnaire d'événements dans le contrôle utilisateur qui est déclenché lorsque l'événement souhaité se produit. Ce gestionnaire d'événements doit "faire remonter" l'événement dans le formulaire, lui permettant de le gérer.

Exemple de code

Considérons un contrôle utilisateur avec un bouton nommé "Button1 ":

Contrôle utilisateur :

[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);               
}
Copier après la connexion

Principal Formulaire :

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

protected void UserControl_ButtonClick(object sender, EventArgs e)
{
    //handle the event 
}
Copier après la connexion

Notes

  • Visibilité de l'événement : L'attribut Browsable expose l'événement dans les "événements" du concepteur Visual Studio view.
  • Catégorie d'événement : L'attribut Category spécifie le catégorie de l'événement, telle que « Action ».
  • Description de l'événement : L'attribut Description fournit une brève description de l'événement.
  • Omission de gestion de l'événement : Il est possible d'omettre les attributs ci-dessus, mais la disponibilité du concepteur améliore la convivialité.
  • Amélioré Syntaxe : Les versions plus récentes de Visual Studio prennent en charge une syntaxe plus courte : ButtonClick?.Invoke(this, e); au lieu de if (this.ButtonClick!= null) this.ButtonClick(this, e);.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal