Entwickler-Ecke

WinForms - Von Form1 zu Form2 und zurück


ramatus - Mi 16.11.11 22:02
Titel: Von Form1 zu Form2 und zurück
hallo,

ich habe mal wieder eine frage.


C#-Quelltext
1:
2:
new Auswertung().Show(); // neue Form aufrufen 
this.Hide();// Startform schließen


damit rufe ich eine 2 form auf und schließe die erste Form. wenn ich aber wieder zurück zur ersten Form will sagt
das programm das die form1 nicht bekannt ist.

wie kann ich zwischen formen hin und her wechseln ?

viele grüße

claudia

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus Multimedia / Grafik verschoben am Do 17.11.2011 um 12:09


jaenicke - Mi 16.11.11 22:15


C#-Quelltext
1:
2:
3:
4:
    this.Hide();
    using (Form2 MyForm = new Form2())
        MyForm.ShowDialog();
    this.Show();


ramatus - Mi 16.11.11 22:21

hallo sebastian ,

danke für deine schnelle antwort , mit den aufruf habe ich ja bereits die 2 form aufgerufen und die hauptform geschlossen. nun möchte ich aber die form1 wieder öffnen.
dort befindet sich ein button zurück. verstehst du wie ich das meine.

ich habe eine startseite und von dieser soll es möglich sein auf andere seiten zu navigieren und wieder zur startform zurück zu kommen.
nun muss ich den ausführenden button mit code versorgen und den zurückbutton ja auch oder nicht ?

liebe grüße

claudia


jaenicke - Mi 16.11.11 22:41

user profile iconramatus hat folgendes geschrieben Zum zitierten Posting springen:
danke für deine schnelle antwort , mit den aufruf habe ich ja bereits die 2 form aufgerufen und die hauptform geschlossen. nun möchte ich aber die form1 wieder öffnen.
dort befindet sich ein button zurück. verstehst du wie ich das meine.
Ich habe schon verstanden, genau das macht der Code. ;-)

Zur Erklärung:
ShowDialog zeigt das zweite Fenster an und wartet bis es wieder geschlossen wird. Das heißt das this.show() danach wird auch erst aufgerufen, wenn das zweite Fenster wieder geschlossen ist.
Du musst also das zweite Fenster nur schließen. Ob jetzt durch einen Button oder mit dem X oben rechts ist dabei egal.

Das zweite Fenster zeigt also nicht das erste an, sondern das erste zeigt sich selbst nach dem Schließen wieder an. Der Hintergrund ist, dass eine Beziehung zwischen Klassen nur in eine Richtung gehen sollte. Das heißt die eine kennt die andere, aber die nicht die erste. Das macht den Code übersichtlicher und leichter wartbar.

Wenn du Daten zurückliefern willst, kannst du diese in dem zweiten Fenster in Eigenschaften anbieten, die dann vom ersten Fenster nach dem Schließen des zweiten ausgelesen werden können. Ebenso können Parameter an das zweite Fenster mitgegeben werden.