Kann ich die Schaltfläche 'Schließen' eines Formulars mit C # deaktivieren? [Duplikat]

7

Wie kann ich die Schließen-Schaltfläche eines Formulars wie im Bild unten deaktivieren? (Das Bild unten zeigt ein MessageBox Fenster)

Die obige MessageBox wurde von mir generiert! Ich möchte die Schließen-Schaltfläche eines normalen Formulars deaktivieren.

    
lifetimes 14.09.2012, 10:23
quelle

5 Antworten

9

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 .

    
lifetimes 14.09.2012, 10:25
quelle
12

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; ):

%Vor%

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.

    
Derek W 07.03.2013 13:13
quelle
7

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.

    
Alex Jorgenson 10.04.2013 22:16
quelle
3

Sie sollten die von CreateParams

abgeleitete Funktion System.Windows.Forms.Form außer Kraft setzen

Und ändern Sie den Klassenstil

%Vor%     
Tharun 14.09.2012 10:28
quelle
0
%Vor%     
Mac Lee 16.05.2016 03:07
quelle

Tags und Links