Heim >Backend-Entwicklung >C++ >Wie kann ich Ereignisse von einem Benutzersteuerelement an sein übergeordnetes Formular übergeben?

Wie kann ich Ereignisse von einem Benutzersteuerelement an sein übergeordnetes Formular übergeben?

Barbara Streisand
Barbara StreisandOriginal
2025-01-05 20:35:39607Durchsuche

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

Ereignisse in der Hierarchie der Benutzersteuerung weiterleiten

In benutzerdefinierten Benutzersteuerungen ist es häufig wünschenswert, innerhalb der Steuerung ausgelöste Ereignisse für die Hauptsteuerung zugänglich zu machen bilden. Dies wird deutlich, wenn versucht wird, Ereignisse zu verarbeiten, die von Untersteuerelementen stammen, wie z. B. Wertänderungen in einem numerischen Auf-Ab-Steuerelement.

Erstellen eines Ereignishandlers

Um dieses Problem zu beheben Challenge erstellen Sie einen Event-Handler innerhalb der Benutzersteuerung, der ausgelöst wird, wenn das gewünschte Ereignis eintritt. Dieser Ereignishandler sollte das Ereignis in das Formular „aufblasen“, damit es es verarbeiten kann.

Beispielcode

Stellen Sie sich ein Benutzersteuerelement mit einer Schaltfläche namens „Button1“ vor ":

Benutzerkontrolle:

[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);               
}

Haupt Form:

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

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

Notizen

  • Ereignissichtbarkeit: Das Attribut „Durchsuchbar“ macht das Ereignis in den „Ereignissen“ des Visual Studio-Designers verfügbar. Ansicht.
  • Ereigniskategorie: Das Kategorieattribut gibt die Ereignisse an B. „Aktion“.
  • Ereignisbeschreibung: Das Attribut „Beschreibung“ enthält eine kurze Beschreibung des Ereignisses.
  • Auslassung bei der Ereignisbehandlung: Es ist möglich, die oben genannten Attribute wegzulassen, aber die Verfügbarkeit von Designern verbessert die Benutzerfreundlichkeit.
  • Verbessert Syntax: Neuere Visual Studio-Versionen unterstützen eine kürzere Syntax: ButtonClick?.Invoke(this, e); statt if (this.ButtonClick!= null) this.ButtonClick(this, e);.

Das obige ist der detaillierte Inhalt vonWie kann ich Ereignisse von einem Benutzersteuerelement an sein übergeordnetes Formular übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn