Maison >développement back-end >C++ >Comment puis-je propager des événements des contrôles utilisateur vers le formulaire principal en 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!