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; }
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(); }
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; } } }
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; } }
In diesem Fall würden Sie die untergeordnete Formularinstanz mit der Variablen erstellen als Argument:
SettingsForm settingsForm = new SettingsForm(SomeString);
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!