Ü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);
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); } }
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. // ... } }
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 // ... }
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!