Autor Beitrag
michdan
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 13.01.13 16:20 
Hallo

Ich habe 2 forms. Auf form1 habe ich einen button mit dem ich das form2 öffnen möchte und beim zweiten click auf button in form1 das form2 wieder schliesen.

Der button aud form1 soll als toggle wirken.

Ich öffne das form2 mit

ausblenden C#-Quelltext
1:
2:
Form2 f2 = new Form2();
f2.Show();


aber wie kann ich den form2 wieder schliesen?

Moderiert von user profile iconChristian S.: B- durch C#-Tags ersetzt
Moderiert von user profile iconTh69: Titel geändert.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4795
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 13.01.13 17:14 
Hallo michdan :welcome:

du mußt dir das Form-Objekt in einer Membervariablen merken
ausblenden C#-Quelltext
1:
private Form2 form2 = null;					

und kannst dann entsprechend abfragen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if (form2 == null)
{
  form2 = new Form2();
  form2.Show();
}
else
{
  form2.Close();
  form2 = null// wichtig: Referenz wieder zurücksetzen
}


Dann sollte deine Form2 aber nicht vom User selbst geschlossen werden können (d.h. du solltest den Close-Button ausblenden (ControlBox = false) bzw. deaktivieren durch das FormClosing-Ereignis).
michdan Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 13.01.13 18:27 
hallo

Danke das hat funktioniert...
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: Mo 14.01.13 08:01 
user profile iconmichdan hat folgendes geschrieben Zum zitierten Posting springen:
Danke das hat funktioniert...


Auch wenn du das ganz schnell hintereinander öffnest-schließt-öffnest? Ich hatte so schon den Effekt, das eine Form nicht null war, aber als Disposed markiert und somit nicht anzeigbar war. Daher würde ich noch IsDisposed mit abfragen, falls der User mal das Fenster vershentlich schließt und gleich wieder öffnet!

_________________
Gruß
Christoph
michdan Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 15.01.13 13:37 
ja das funktioniert bei mir sonn....

Habe auch nur diese 2 forms und ein button als test..

Ich habe dass auch mit Delphi versucht und mich hat gewundert warum man in delphi einfach dass Form2 mit Form2.Close von Form1 schliesen kann ohne eine referenz variable zu haben.

In Delphi steht einfach
Uses Form2 und schon hat man direkten zugriff auf Form2.

Warum is das bei C# so anders ?