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.
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%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.
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.
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.
Verhindern Sie, dass das Formular geschlossen, aber ausgeblendet wird:
%Vor%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.
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
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.
Gehe zu den Eigenschaften und wähle aus langweiligen Stil wie keine
ausWählen Sie einfach das gewünschte Formular aus und setzen Sie im Bereich Eigenschaften controlBox = false Das hat einfach für mich funktioniert:)