Schließen Sie die Schließen-Schaltfläche in der Titelleiste .NET

7

Ich wurde aufgefordert, die Schließen-Schaltfläche aus unserer VB .NET 2005 MDI-Anwendung zu entfernen oder zu deaktivieren. Es gibt keine nativen Eigenschaften in einem Formular, die es Ihnen ermöglichen, die Schließen-Schaltfläche auszublenden, sodass der Benutzer sie nicht schließen kann, und ich kann mich nicht daran erinnern, in der Formularklasse etwas zu sehen, das mir dies ermöglicht.

Gibt es vielleicht einen API-Aufruf oder eine magische Eigenschaft, um in .NET 2005 oder höher aufzurufen oder zu funktionieren, um dies zu tun?

~~~~~~~~~~~~~~~~~~~~~~~~

Weitere Informationen:

Ich muss die Funktion zum Minimieren / Maximieren beibehalten

Ich muss die ursprüngliche Titelleiste beibehalten, da die Zeichenmethoden des Formulars bereits sehr komplex sind.

    
Jrud 16.11.2009, 16:58
quelle

13 Antworten

26

Gestatten Sie anhand der letzten Informationen, die Sie zu Ihrer Frage hinzugefügt haben, das Ende meiner Antwort.

Dies ist, was Sie auf false setzen müssen: Form.ControlBox Eigentum

ABER, Sie verlieren die Schaltflächen zum Minimieren und Maximieren sowie das Anwendungsmenü (oben links).

Alternativ überschreiben Sie OnClose und setzen Cancel auf "true" (C # -Beispiel):

%Vor%

Wenn keine dieser Lösungen akzeptabel ist und Sie nur die Schließen-Schaltfläche deaktivieren müssen, können Sie die Route pinvoke / createparams verwenden:

Wie man die Schließen-Schaltfläche vom Fenster mit der .NET-Anwendung deaktiviert

Dies ist die VB-Version des jdm-Codes:

%Vor%     
Philip Wallace 16.11.2009, 17:06
quelle
8

Sie können die Schließen-Schaltfläche und die Schließen-Menüoption im Systemmenü deaktivieren, indem Sie den "Klassenstil" des Fensters ändern. Fügen Sie Ihrem Formular den folgenden Code hinzu:

%Vor%

Dies wird nicht nur verhindern, dass das Fenster geschlossen wird, sondern es wird auch die Schaltfläche grau dargestellt. Es ist C #, aber ich denke, es sollte einfach sein, es in VB zu übersetzen.

    
jdm 16.11.2009 17:19
quelle
6

Hier ist eine einfache Möglichkeit, die Schließen-Schaltfläche zu entfernen:
 1. Wählen Sie das Formular
 2. Gehe nun zu Properties .
 3. Suchen Sie ControlBox und ändern Sie den Wert in False .

Dadurch werden alle Steuerschaltflächen (z. B. Minimieren, Maximieren, Beenden) und auch das Symbol, das sich in der linken Ecke vor dem Titel befindet, entfernt.

    
user2849882 05.10.2013 16:00
quelle
3

Sie sollten das OnClose-Ereignis des Formulars überschreiben können. Dies tritt häufig auf, wenn eine Anwendung in der Taskleiste minimiert wird, wenn sie geschlossen ist.

    
Dave Swersky 16.11.2009 17:01
quelle
2

Wenn Sie das X-Feld auf dem Formular drücken. Die Form1_Closing wird zuerst ausgeführt, dann ist Form1_Closed erledigt.

Der e.Cancel = True in Form1_Closing - verhindert, dass Form1_Closed aufgerufen wird und lässt das Formular weiterhin aktiv.

    
jmweb 24.10.2012 19:05
quelle
1

Verhindern Sie, dass das Formular geschlossen, aber ausgeblendet wird:

%Vor%     
user3781113 04.05.2015 15:36
quelle
1

Sie können die Eigenschaft ControlBox auf False setzen, aber die gesamte Titelleiste ist verschwunden, aber der Titel selbst ...

    
jonaspp 16.11.2009 17:04
quelle
0

Was jmweb sagte hier ist auch in Ordnung. Die X-Schaltfläche zum Schließen wird nicht angezeigt, wenn Sie das Ereignis beim Schließen des Formulars abbrechen. Aber Sie müssen die Prozesse freigeben, die das Formular benötigt, und dann das Formular schließen.

%Vor%

Dies funktionierte für mich mit Menüleiste.

    
azemoten 09.07.2014 23:39
quelle
0

Wählen Sie das Formular selbst aus (oder klicken Sie darauf) Klicken Sie im Eigenschaftenfenster auf Ereignisse (das kleine Blitzsymbol). Suchen Sie nach Form.Closing und doppelklicken Sie darauf. Dann tippe: e.cancel=true

    
small_town_girl 15.02.2015 12:07
quelle
0

Erstellen eines Formulars ohne Titelleiste in Visual Basic.

Gehe zu Form Properties und setze sowohl ControlBox als auch ShowIcon auf false.

Deaktivieren Sie dann all den Text aus der text -Eigenschaft des Formulars.

    
Rahul Gurujala 14.05.2015 11:45
quelle
-1

Gehe zu den Eigenschaften und wähle aus langweiligen Stil wie keine

aus     
gaurav rai 17.07.2017 11:09
quelle
-2

Wählen Sie einfach das gewünschte Formular aus und setzen Sie im Bereich Eigenschaften controlBox = false Das hat einfach für mich funktioniert:)

    
Ajeet Khan 18.05.2014 18:42
quelle
-3
%Vor%     
willy 24.10.2012 17:56
quelle

Tags und Links