Programmierung

[C#] Verhindern, dass das Fenster geschlossen wird

Ich bin ja gerade dabei, einen kleinen persönlichen Editor zu schreiben. Und ich hatte folgenden Problemfall gefunden: Ich habe einen Text geschrieben und bin dann ausversehen auf das kleine X rechts oben im Fenster gekommen. Das Fenster hat sich einfach geschlossen, ohne mich zu fragen, ob ich die Datei denn nicht speichern will. Dieses einfache Schließen sollte natürlich unterbunden werden.

Was ist zu tun? Nun, wir müssen in das Event FormClosing einfach nur ein paar Zeilen schreiben:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Wenn der Benutzer doch auf "Abbrechen" oder so
// klickt, soll das Fenster nicht geschlossen werden.
if (SaveFileProcedure() == false)
{
e.Cancel = true;
}
}

Die Funktion SaveFileProcedure() ist eine Funktion von mir, die einfach nur testet, ob die Datei verändert worden ist und wenn ja, dass dann ein Speichern-Dialog kommt. Diese Funktion gibt dann einfach nur zwei verschiedene Werte aus: Wenn der Rückgabewert true ist, dann kann das Programm problemlos weitermachen. Ansonsten sollte es in dem Zustand bleiben, in dem es gerade ist.

Wichtig ist hierbei nur, dass man durch die Anweisung

e.Cancel = true;

verhindert, dass das Programm auch wirklich geschlossen wird, wenn man es denn nicht möchte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.