Beim Programmieren zwischen Fenstern stellt sich mir immer wieder die gleiche Frage: Wie Übergabe ich den Wert aus der neuen Form in die „Haupt“-Form zurück.
Die Möglichkeit per DialogResult ist oft hilfreich, allerdings doch stark eingeschenkt. Deshalb erkläre ich hier per einfachem Beispiel meine am meist genutzte Realisierung. Ich habe deshalb ein kleines Beispiel erstellt, das zeigt die einfach das Zugreifen auf die Instanz einer Form doch tatsächlich sein kann.
Hier die Main-Form
using (var login = new Login()) //Login ist die separate Form die aufgerufen wird { var result = login.ShowDialog(); if (result == DialogResult.OK) //Wenn die Form "Login" das OK per DialogResult zurückgibt { bool value = login.LoginOK; //Greife auf Variable in Form (Instanz) zu } }
Hier die Login-Form
public bool LoginOK { get; set; } //Die Variable die von der Main-Form ausgelesen wird private void simpleButton1_Click(object sender, EventArgs e) { if (textEdit1.Text == "password") { //Bein Drücken des Button wird das Feld in der TextBox kontroliert this.LoginOK = true; //Die Variable auf High gesetzt this.Close(); } //Und die Login-Form geschlossen }
Selbstverständlich können in der Form noch weitere Variablen angelegt und übergeben werden. Immer im Hinterkopf sollte die doch immer sein, das .NET und C# völlig Objektorientiert sind. Deshalb funktioniert auch der beschriebene Zugriff auf die Variable in der Instanz der Form so simpel einfach!
Schreibe einen Kommentar