WinForms C# Form2 vor Form1?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Du musst in Program.cs eben Form2 in Application.Run eintragen und nicht mehr Form1. Aber dann musst Du nach der Auswahl der gewünschten Option in Form2 Deine Form1 öffnen, ohne Form2 zu schließen, denn sonst beendest Du das Programm.

Es empfiehlt sich, das folgendermaßen zu tun. Wenn eine Option gewählt wurde, führst Du folgenden Code aus:

Form1 f1 = new Form1();
f1.Closed += Form1_Closed;
f1.Show();
this.Hide();

Das zeigt Form1 an und blendet Form2 aus. Form2 bekommt aber einen Event, wenn Form1 geschlossen wird.

Im Eventhandler Form1_Closed machst Du dann ein this.Show(). Damit landest Du wieder in der Auswahl.

Fabi21001 
Fragesteller
 08.02.2021, 16:44

Hab das gerade gemacht, aber es öffnet sich trotzdem Form1.

Wie man nach der Auswahl Form1 öffnet weiss ich, danke.

0
ohwehohach  08.02.2021, 16:45
@Fabi21001
Hab das gerade gemacht, aber es öffnet sich trotzdem Form1.

Das kann nicht sein, außer, es steht irgendwo außerhalb von Application.Run, dass die Form angezeigt werden soll. Zeige mal den Code Deiner Main-Methode.

0
Fabi21001 
Fragesteller
 08.02.2021, 16:48
@ohwehohach
 static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
0
ohwehohach  08.02.2021, 16:52
@Fabi21001

Nun, dann wird entweder nicht Form1 angezeigt oder in Form2 ist Code drin, der Form1 anzeigt, obwohl es nicht sein soll.

0
Fabi21001 
Fragesteller
 08.02.2021, 16:56
@ohwehohach

Hab es gerade mit einem Neustart von VS versucht und nun klappt es.

Vielen Dank für die Hilfe

0