Heim > Backend-Entwicklung > C++ > Wie übergebe ich Daten mithilfe von Delegaten zwischen Windows Forms?

Wie übergebe ich Daten mithilfe von Delegaten zwischen Windows Forms?

DDD
Freigeben: 2025-01-03 19:18:42
Original
779 Leute haben es durchsucht

How to Pass Data Between Windows Forms Using Delegates?

Übergabe von Daten zwischen Windows Forms mithilfe von Delegaten

In einer Windows Forms-Anwendung ist es bei der Arbeit mit mehreren Formularen häufig erforderlich, Daten zu übergeben zwischen ihnen. Ein gängiger Ansatz, dies zu erreichen, ist die Verwendung von Delegierten. So können Sie die Datenübergabe mithilfe von Delegaten implementieren:

Den Delegaten erstellen

Zuerst müssen Sie einen Delegaten erstellen, der als Rückrufmethode für die Datenübertragung dient. In C# kann dies wie folgt erfolgen:

public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
Nach dem Login kopieren

Dieser Delegat deklariert eine Methode, die zwei Parameter akzeptiert: ein Senderobjekt (normalerweise das Formular, das die Daten sendet) und ein Ereignisargumentobjekt (das die tatsächlichen Daten enthält). Daten).

Verwenden des Delegaten

Im Hauptformular können Sie eine Instanz des Delegaten erstellen und Lösen Sie das Ereignis immer dann aus, wenn Sie Daten an das untergeordnete Formular übergeben möchten. Zum Beispiel:

public partial class MainForm : Form
{
    // Declare the delegate instance
    public event PageInfoHandler PageInfoRetrieved;

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

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

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

Abrufen der Daten

Innerhalb des untergeordneten Formulars (in diesem Fall des SettingsForm) können Sie das Delegatereignis abonnieren, um die zu erhalten Daten. Dies kann im Konstruktor des untergeordneten Formulars oder im Initialisierungscode erfolgen. Zum Beispiel:

public class SettingsForm : Form
{
    public SettingsForm()
    {
        // Subscribe to the delegate event
        if (MainForm.PageInfoRetrieved != null)
            MainForm.PageInfoRetrieved += new PageInfoHandler(OnPageInfoRetrieved);
    }

    private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e)
    {
        // This method will be called when the PageInfoEventArgs is raised
        // in the main form. You can access the data from the event argument here.
        // ...
    }
}
Nach dem Login kopieren

Verwenden der Daten

Sobald Sie die Daten im untergeordneten Formular abgerufen haben, können Sie die bereitgestellten Ereignisargumente verwenden, um auf die tatsächlichen Daten zuzugreifen . In diesem Beispiel werden die Daten als Eigenschaft des PageInfoEventArgs-Objekts übergeben. Sie könnten es beispielsweise so verwenden:

// In the SettingsForm
private void DisplayData()
{
    // Get the data from the event arguments
    string data = e.Data;

    // Display or use the data in the child form
    // ...
}
Nach dem Login kopieren

Indem Sie diese Schritte befolgen, können Sie mithilfe von Delegaten effizient Daten zwischen mehreren Windows Forms übergeben und so die Kommunikation und den Datenaustausch zwischen Formularen in Ihrer Anwendung ermöglichen.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Daten mithilfe von Delegaten zwischen Windows Forms?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage