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

Comment puis-je gérer les événements de contrôle utilisateur personnalisés dans mon formulaire principal ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 19:30:391016parcourir

How Can I Handle Custom User Control Events in My Main Form?

Événements de contrôle utilisateur personnalisés pour la gestion du formulaire principal

Dans le développement de contrôles utilisateur personnalisés, des situations peuvent survenir dans lesquelles vous avez besoin qu'un événement se produise dans le contrôle à gérer par le formulaire principal. Par exemple, l'enregistrement d'un événement "ValueChanged" pour un contrôle numérique haut-bas dans le contrôle utilisateur pourrait déclencher une mise à jour dans une fenêtre d'affichage du formulaire principal.

Pour y parvenir, vous devez créer un gestionnaire d'événements dans le contrôle utilisateur qui est déclenché lorsqu'un événement interne se déclenche. Cela permet de faire remonter l'événement vers le haut pour qu'il soit géré par le formulaire principal.

Considérons l'exemple suivant :

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

Formulaire principal Code :

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 fournissent une syntaxe plus concise : ButtonClick?.Invoke(this, e) ; au lieu de if (this.ButtonClick != null) this.ButtonClick(this, e);.
  • Les attributs tels que Browsable, Category et Description configurent la visibilité et les métadonnées des événements dans le concepteur Visual Studio. Bien que facultatifs, ils améliorent l'expérience utilisateur.

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