Sie verarbeiten das Closing -Ereignis (und nicht das Closed-Ereignis) des Formulars.
Und dann verwenden Sie e.CloseReason, um zu entscheiden, ob Sie es wirklich blockieren wollen (UserClose) oder nicht (TaskManager Close).
Außerdem gibt es ein kleines Beispiel Deaktivieren der Schaltfläche "Schließen" in Formularen auf codeproject .
Klicken Sie mit der rechten Maustaste auf das fragliche Fenster und dann auf Eigenschaften. Unter Eigenschaften klicken Sie auf Ereignisse. Doppelklicken Sie auf das Ereignis FormClosing
.
Der folgende Code wird von Windows Form Designer generiert:
%Vor% Aktualisieren Sie den Code einfach so, dass er so aussieht (add e.Cancel = true;
):
Du bist fertig!
Alternativ können Sie die Schaltflächen zum Schließen, Maximieren und Minimieren des Fensters deaktivieren:
Sie können mit der rechten Maustaste auf das fragliche Fenster klicken und dann auf Eigenschaften klicken. Unter Eigenschaften legen Sie die Eigenschaft ControlBox
auf false
fest.
Wenn Sie mit einem untergeordneten MDI-Fenster arbeiten und die Schließen-Schaltfläche während der Erstellung des Fensters deaktivieren (dh Sie möchten es zu bestimmten Zeiten während der Lebensdauer des Formulars deaktivieren), wird keine der zuvor vorgeschlagenen Lösungen funktionieren¹.
Stattdessen müssen wir den folgenden Code verwenden:
%Vor% ¹ Sie können ControlBox = false
einstellen, wenn Sie keine Schaltflächen wünschen, aber das ist nicht das, wonach die Frage gefragt wird.