Besonmders wenn man mit mehreren, nicht modalen, Fenstern (Formen) arbeitet, möchte man ein Fenster vielleicht nur verstecken sodass es einfach ohne neu-instanzierung wieder aufgerufen werden kann.
Einfach in FormClosing das e.Cancel-Flag auf true stellen und Hide() aufrufen sorgt leider dafür, das die Form garnicht mehr ordentlich geschlossen wird.
Durch eine kleine if-Abfrage kann man das Problem aber ganz schnell lösen.
HinweisWenn im Quellcode Close() aufgerufen wird, zählt das wie ein benutzerausdefinierter Schließbefehl.
Als Alternative kann man nun entweder das Event vor dem schließen deabonnieren:
this.FormClosing -= Form1_FormClosing;
Close();
Oder man benutzt Befehle wie Application.Exit(). Das beendet dann aber die ganze Anwendung.
Danke an dariusarnold für den Hinweis :)