Optisch entfernen/deaktivieren Sie die Schaltfläche schließen aus der Titelleiste .NET
Bin ich gebeten worden, zu entfernen oder deaktivieren Sie die Schaltfläche schließen aus unserer VB .NET 2005 MDI-Anwendung. Es gibt keine einheitlichen Eigenschaften auf eine form, die es ermöglichen, Sie zu Grau aus der schließen-Schaltfläche, damit der Benutzer nicht in der Nähe, und ich erinnere mich nicht sehen, nichts in der form-Klasse, die es mir ermöglichen, dies zu tun.
Gibt es vielleicht ein API-Aufruf oder einige Magische Eigenschaft oder Funktion zu rufen .NET 2005 oder später, dies zu tun?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mehr Informationen:
Ich halten müssen, um die minimieren - /maximieren-Funktionalität
Ich halten müssen, um die original-Titel-bar, weil die form ist die Zeichnung, die Methoden sind schon sehr Komplex.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf den neuesten Informationen, die Sie zusätzlich zu Ihrer Frage, springt an das Ende meiner Antwort.
Dies ist, was Sie brauchen, um auf false gesetzt: Form.ControlBox-Eigenschaft
ABER, verlieren Sie die Schaltflächen zum minimieren und maximieren sowie das Anwendungsmenü (oben Links).
Als alternative, überschreiben OnClose und setzen Sie Cancel auf true (C# Beispiel):
Falls keine dieser Lösungen akzeptabel sind, und zu deaktivieren, müssen Sie nur die Schaltfläche schließen, können Sie gehen die pinvoke/createparams-route:
Zum deaktivieren der Schaltfläche schließen von Fenster-Formular mit .NET-Anwendung
Dies ist die VB-version von jdm code:
Können Sie deaktivieren Sie die schließen-Schaltfläche und das Menüelement "schließen" im system-Menü durch ändern der Klasse "Stil" des Fensters. Fügen Sie den folgenden code zu Ihrem Formular:
Nicht nur stoppen Sie die Fenster immer geschlossen, aber es wird tatsächlich Grau heraus die-Taste. Es ist C#, aber ich denke, es sollte einfach sein, um es zu übersetzen auf VB.
Hier ist eine einfache Möglichkeit, entfernen Sie die schließen-Taste:
1. Wählen Sie die Form
2. Gehen Sie jetzt zu
Properties
.3. Finden
ControlBox
und ändern Sie den Wert aufFalse
.Dies wird entfernen Sie alle Tasten (z.B. Minimieren, Maximieren, Beenden) und auch das Symbol ist in der linken Ecke vor dem Titel.
Sollten Sie in der Lage sein, um das überschreiben der OnClose-Ereignis des Formulars. Dies ist üblich, wenn eine Anwendung minimiert in der Taskleiste, wenn "geschlossen".
Beim drücken der X-box auf dem Formular.
Die
Form1_Closing
zuerst gemacht, dann dieForm1_Closed
ist getan.Den
e.Cancel = True
imForm1_Closing
- verhindertForm1_Closed
aus aufgerufen wird, daher, so dass Sie Ihre form noch aktiv.Verhindern, dass das Formular zu schließen, sondern verstecken es:
Können Sie die
ControlBox
EigenschaftFalse
, aber die ganze Titelleiste ist verschwunden, aber die Titel selbst...Was jmweb sagte hier ist OK als gut. Die X-Schaltfläche schließen, wird nicht gehen, wenn Sie das Ereignis Abbrechen auf die form schließen. Aber, so zu tun, Sie benötigen, um die Prozesse freigeben der form braucht, und dann das Formular schließen.
Dieser arbeitete für mich mit Hilfe von Menü-Strip.
Auswählen (oder Klick) auf das Formular selbst
Klicken Sie auf Ereignisse in der Eigenschaft Fenster (das kleine Blitz-Symbol).
Suchen
Form.Closing
, und doppelklicken Sie es.Geben Sie dann ein:
e.cancel=true
Machen, ein Formular ohne eine Titelleiste, in Visual Basic.
Gehen
Form Properties
und sowohlControlBox
undShowIcon
auf false.Dann, klar alle der text aus dem Formular
text
Eigenschaft.gehen Sie auf Eigenschaften und wählen Sie aus Langeweile Stil wie keiner
Wählen Sie einfach die gewünschte form und im Abschnitt "Eigenschaften" legen Sie die controlBox = false
Dass nur für mich gearbeitet 🙂