Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von Delegaten und Ereignishandlern Daten zwischen Windows Forms übergeben?

Wie kann ich mithilfe von Delegaten und Ereignishandlern Daten zwischen Windows Forms übergeben?

Linda Hamilton
Freigeben: 2025-01-04 17:30:39
Original
894 Leute haben es durchsucht

How Can I Pass Data Between Windows Forms Using Delegates and Event Handlers?

Übergabe von Daten zwischen Windows Forms

Beim Verwalten mehrerer Formulare in einer Windows Forms-Anwendung kann es vorkommen, dass Sie Daten zwischen ihnen austauschen müssen ihnen. In diesem Artikel geht es um das Problem der Übergabe einer Variablen von einem Hauptformular an ein „Einstellungs“-Formular, damit das neue Formular diese Informationen anzeigen kann.

Verwendung von Delegaten und Ereignishandlern

Der Code, den Sie im Hauptformular angegeben haben, verwendet Delegaten und Ereignishandler, um Daten an das Einstellungsformular zu senden. Ein Delegat ist ein Typ, der eine Signatur für eine Methode mit bestimmten Eingabe- und Ausgabeparametern definiert. Indem Sie einem Ereignishandler einen Delegaten zuweisen, können Sie Methoden registrieren, die beim Eintreten des Ereignisses aufgerufen werden sollen.

In diesem Fall erstellt das Hauptformular einen Delegaten PageInfoHandler mit einem Eingabeparameter vom Typ PageInfoEventArgs. Die PageInfoEventArgs-Klasse enthält die Daten (in diesem Fall eine Zeichenfolge), die Sie an das Einstellungsformular übergeben möchten. Wenn auf die Schaltfläche „Einstellungen“ geklickt wird, wird der Ereignishandler (OnPageInfoRetrieved) aufgerufen, der die registrierten Methoden (in diesem Fall PageInfoRetrieved) aufruft.

Abrufen von Daten im Einstellungsformular

Im Einstellungsformular müssen Sie eine Eigenschaft oder Methode definieren, die Ihnen den Zugriff auf die vom Hauptformular übergebenen Daten ermöglicht. In der vorgeschlagenen Lösung wird ein Konstruktor verwendet, um die Zeichenfolge an das Einstellungsformular zu übergeben. Dieser Konstruktor speichert die Zeichenfolge in einer privaten Mitgliedsvariablen, auf die dann über eine öffentliche Getter-Methode zugegriffen werden kann.

Vollständiges Codebeispiel

Das vollständige Codebeispiel ist wie folgt folgt:

MainForm.cs

public partial class MainForm : Form
{
    public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
    public event PageInfoHandler PageInfoRetrieved;

    private void toolStripBtnSettings_Click(object sender, EventArgs e)
    {
        PageInfoEventArgs args = new PageInfoEventArgs(SomeString);
        OnPageInfoRetrieved(args);

        SettingsForm settingsForm = new SettingsForm(SomeString);
        settingsForm.ShowDialog();
    }

    private void OnPageInfoRetrieved(PageInfoEventArgs args)
    {
        if (PageInfoRetrieved != null)
            PageInfoRetrieved(this, args);
    }
}
Nach dem Login kopieren

SettingsForm.cs

public class SettingsForm : WinForm
{
    private string m_Data;

    public SettingsForm(string data)
    {
        m_Data = data;
    }

    public string Data { get { return m_Data; } }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Delegaten und Ereignishandlern Daten zwischen Windows Forms übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage