Entwickler-Ecke

WinForms - Forms schließen?!


theMen - Fr 24.02.12 01:43
Titel: Forms schließen?!
Hey zusammen,

ich habe eine Frage bezüglich des schließens von Formen.
Ich habe eine Hauptform von dieser wird eine 2 Form geöffnet.
Von dieser 2 Form wird wiederrum eine 3 Form geöffnet.
Was muss ich jetzt im Quellcode der 3 Form angeben damit ich
die 3 und die 2 Form schließen kann??
Ich weis das ich mit der Anweisung this.Close(); die aktuelle Form
schließe... ich habe aber kein Plan wie ich Form 2 dann schließe??

mfg


daeve - Fr 24.02.12 02:01

user profile icontheMen hat folgendes geschrieben Zum zitierten Posting springen:
Hey zusammen,

ich habe eine Frage bezüglich des schließens von Formen.
Ich habe eine Hauptform von dieser wird eine 2 Form geöffnet.
Von dieser 2 Form wird wiederrum eine 3 Form geöffnet.
Was muss ich jetzt im Quellcode der 3 Form angeben damit ich
die 3 und die 2 Form schließen kann??
Ich weis das ich mit der Anweisung this.Close(); die aktuelle Form
schließe... ich habe aber kein Plan wie ich Form 2 dann schließe??

mfg


Das wurde doch kürzlich schon gefragt..

http://www.c-sharp-forum.de/topic_mit+Hilfe+von+2+Button+Form+oeffnen+und+schliessen_108589.html


theMen - Fr 24.02.12 02:56

die Anleitung entspricht aber nicht dem was ich Suche.
Ich habe so zu sagen das genaue gegenteil vor.
Ich will nicht aus form1 dann form2 schließen, sondern
ich will aus form2 dann form1 schließen.

mfg


mats74 - Fr 24.02.12 08:46

Hallo theMen

Da gibt es schon viele beantwortete Themen:
Lösungsansatz 1 [http://www.c-sharp-forum.de/viewtopic.php?t=105763&highlight=form1+form2]
Lösungsansatz 2 [http://www.bitel.net/dghm1164/programming/Kommunikation_von_2_Forms.html]
Lösungsansatz 3 [http://www.c-sharp-forum.de/viewtopic.php?t=107746&highlight=form+daten]
Lösungsansatz 4 [http://www.c-sharp-forum.de/viewtopic.php?t=107311&highlight=form1+form2]
... und noch viele mehr.
Vielleicht hilft Dir das bei deiner Aufgabe.


theMen - Fr 24.02.12 14:44

Vielen Dank aber da ist eig nichts dabei das mir weiterhilft.
Ich möchte ja nichts übergeben oder so.
Ich möchte einfach nur aus Form2 Form1 schließen.


PantherX - Fr 24.02.12 14:54

Hast du mal versucht im Form2 anzugeben das er Form1 schliessen soll?


Delphi-Quelltext
1:
Form1.close;                    


/Edit

Eventuell kann es nötig sein das du die Form1 in der Form2 unter den Uses-Bedingungen aufführst:


Delphi-Quelltext
1:
2:
3:
4:
5:
uses UForm1;

//oder

uses Unit1;


Ralf Jansen - Fr 24.02.12 15:01

Zitat:
Ich möchte ja nichts übergeben oder so.


Mußt du aber. Wie im richtigen Leben gilt. Wenn A etwas mit B anfangen will muß A auch B kennen. Wenn Form2 also was mit Form1 anstellen soll mußt du Form2 eine Referenz auf Form1 übergeben auf der du dann Close aufrufen kannst.


mats74 - Fr 24.02.12 15:21

... kleine Anmerkung meinerseits:

Wenn deine Form1 die Mainform ist (also die Form die im Application.Run() aufgerufen wird), dann wird deine Applikation nach dem Close-Event geschlossen :wink: .
Ist vielleicht auch nicht das, was man sich daraus erhofft.
Wie bereits von Ralf erwähnt, musst Du die Form1 im Konstruktor der Form2 bekannt machen (gemäss den Links), sonst wird es nicht funktionieren.


Th69 - Fr 24.02.12 20:20

Hallo theMen,

öffnest du die Forms denn modal (ShowDialog) oder aber nicht-modal (Show), denn das macht einen Unterschied? Nur bei nicht-modalen Fenstern nützt dir eine Referenz, denn bei einem modalen Fenster kannst du nicht einfach das aufrufende Fenster schließen.
Hier ist der Vorgehensweise so, daß du einfach nach dem Aufruf von ShowDialog() das eigene Fenster mit this.Close() schließt.