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); }
Principal Formulaire :
UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick); protected void UserControl_ButtonClick(object sender, EventArgs e) { //handle the event }
Notes
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!