Ü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); } }
SettingsForm.cs
public class SettingsForm : WinForm { private string m_Data; public SettingsForm(string data) { m_Data = data; } public string Data { get { return m_Data; } } }
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!