Staffeln der Datenübertragung zwischen C# Windows -Formularen
effiziente Kommunikation zwischen mehreren Windows -Formularen in einer C# -Anwendung ist von entscheidender Bedeutung, insbesondere wenn Daten aus einem sekundären Formular (z. B. ein Einstellungsfenster) zurück zum Hauptformular übertragen werden. Das Verwalten zahlreicher Einstellungen über einzelne Eigenschaften kann unhandlich werden. Eine sauberere Lösung beinhaltet Konstruktorüberladung.
Dieser Ansatz übergibt eine Referenz des aufrufenden Formulars an den Konstruktor des Sekundärformulars und erstellt einen direkten Link für den Datenaustausch.
Hier ist ein Beispiel, das diese Technik demonstriert:
Form1 (Hauptform):
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(this); frm.ShowDialog(); // Use ShowDialog to block until Form2 closes } public string LabelText { get { return Lbl.Text; } set { Lbl.Text = value; } } }
Wenn Form1
Form2
öffnet, übergibt es seine eigene Referenz.
Form2 (Sekundärform):
public partial class Form2 : Form { private Form1 mainForm; public Form2(Form callingForm) { mainForm = callingForm as Form1; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { mainForm.LabelText = txtMessage.Text; this.Close(); // Close Form2 after data transfer } }
Form2
verwendet diese Referenz (mainForm
), um die Eigenschaften von Form1
zu enden und zu ändern, wodurch die nahtlose Datenübertragung aktiviert wird. Beachten Sie die Verwendung von ShowDialog()
in Form1
und this.Close()
in Form2
, um einen besseren Kontrollfluss zu erhalten. Dies stellt sicher, dass Form2
nach Abschluss der Datenübertragung geschlossen wird und das unerwartete Verhalten verhindert. Diese Methode bietet eine robuste und effiziente Möglichkeit, die Kommunikation zwischen Form in C#zu verwalten.
Das obige ist der detaillierte Inhalt vonWie kann ich effektiv zwischen zwei Windows -Formularen in C#kommunizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!