Heim > Backend-Entwicklung > C++ > Wie übergebe ich Variablen zwischen Windows Forms mithilfe von Delegaten und Ereignissen oder Konstruktoren?

Wie übergebe ich Variablen zwischen Windows Forms mithilfe von Delegaten und Ereignissen oder Konstruktoren?

Barbara Streisand
Freigeben: 2025-01-03 21:34:39
Original
121 Leute haben es durchsucht

How to Pass Variables Between Windows Forms Using Delegates and Events or Constructors?

Variablen zwischen Windows Forms-Formularen mithilfe von Delegaten und Ereignissen übergeben

In diesem Szenario haben Sie ein Hauptformular und ein untergeordnetes „Einstellungen“-Formular Formular, ein gängiger Ansatz zum Übergeben einer Variablen an das untergeordnete Formular ist die Verwendung von Delegaten und Ereignissen.

Schritt 1: Initialisieren Sie einen Delegaten und ein Ereignis

Erstellen Sie in Ihrem Hauptformular einen Delegaten und ein Ereignis, um die Datenübertragung abzuwickeln:

public partial class MainForm : Form
{
    /// <summary>
    /// Delegate to send data between forms
    /// </summary>
    public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);

    /// <summary>
    /// Event of the delegate
    /// </summary>
    public event PageInfoHandler PageInfoRetrieved;
}
Nach dem Login kopieren

Schritt 2: Übergeben Sie die Variable im Event-Handler

Wenn Sie im Hauptformular auf die Schaltfläche „Einstellungen“ klicken, erstellen Sie eine Ereignisargumentinstanz mit der gewünschten Variablen übergeben und das Ereignis auslösen:

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

    SettingsForm settingsForm = new SettingsForm();
    settingsForm.ShowDialog();
}
Nach dem Login kopieren

Schritt 3: Rufen Sie die Variable im untergeordneten Formular ab

Behandeln Sie das Ereignis in Ihrem „Einstellungen“-Formular, indem Sie das überschreiben entsprechender Ereignishandler:

public partial class SettingsForm : Form
{
    protected override void OnShown(EventArgs e)
    {
        base.OnShown(e);

        // Retrieve the event arguments
        PageInfoEventArgs args = this.Tag as PageInfoEventArgs;
        if (args != null)
        {
            // Access the passed variable
            string receivedText = args.PageInfo;
        }
    }
}
Nach dem Login kopieren

Verwenden eines Konstruktors zum Bestehen Variablen

Alternativ können Sie die Variable auch direkt an den Konstruktor des untergeordneten Formulars übergeben:

public partial class SettingsForm : Form
{
    private string receivedText;

    public SettingsForm(string text)
    {
        this.receivedText = text;
    }
}
Nach dem Login kopieren

In diesem Fall würden Sie die untergeordnete Formularinstanz mit der Variablen erstellen als Argument:

SettingsForm settingsForm = new SettingsForm(SomeString);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übergebe ich Variablen zwischen Windows Forms mithilfe von Delegaten und Ereignissen oder Konstruktoren?. 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