Maison >développement back-end >C++ >Comment puis-je gérer les événements de contrôle utilisateur à partir de mon formulaire principal ?

Comment puis-je gérer les événements de contrôle utilisateur à partir de mon formulaire principal ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 11:07:34305parcourir

How Can I Handle User Control Events from My Main Form?

Gestion des événements UserControl dans le formulaire principal

Dans la conception d'interface utilisateur, il est courant de créer des contrôles utilisateur personnalisés pour des fonctionnalités spécifiques. Cependant, il devient parfois nécessaire de gérer les événements depuis le contrôle utilisateur au niveau du formulaire principal.

Pour y parvenir, créez un gestionnaire d'événements pour le contrôle utilisateur qui peut être déclenché lorsqu'un événement à l'intérieur du contrôle est déclenché. . Cela permet à l'événement de remonter dans la chaîne, vous permettant de le gérer au niveau du formulaire.

Exemple :

Considérons un contrôle utilisateur personnalisé avec un chiffre haut vers le bas (NUD). Lorsque la valeur du NUD change, vous souhaitez que le formulaire principal mette à jour une fenêtre d'affichage.

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
    this.ButtonClick?.Invoke(this, e);
}

Principal Formulaire :

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

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

Remarques :

  • Les versions plus récentes de Visual Studio offrent une syntaxe plus concise pour les événements bouillonnants : ButtonClick?.Invoke( this, e);
  • Les attributs navigable, catégorie et description améliorent l'interface utilisateur, rendant l'événement accessible dans le concepteur et fournir des descriptions.

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