Ich habe eine WinForms-App, die ich im Vollbildmodus erstellen möchte (ähnlich wie VS im Vollbildmodus).
Zur Zeit bin ich Einstellung FormBorderStyle
zu None
und WindowState
zu Maximized
dem gibt mir ein wenig mehr Platz, aber es funktioniert nicht in der Taskleiste überdecken , wenn es sichtbar ist.
Was muss ich tun, um diesen Raum ebenfalls zu nutzen?
Kann ich für Bonuspunkte etwas tun, um mein MenuStrip
Autohide so zu gestalten, dass auch dieser Platz frei bleibt?
Eine getestete und einfache Lösung
Ich habe in SO und einigen anderen Websites nach einer Antwort auf diese Frage gesucht, aber eine Antwort war für mich sehr komplex und einige andere Antworten funktionieren einfach nicht richtig. Nach vielen Codetests habe ich dieses Rätsel gelöst.
Hinweis: Ich verwende Windows 8 und meine Taskleiste befindet sich nicht im automatischen Ausblendmodus.
Ich habe festgestellt, dass das Setzen des WindowState auf Normal vor dem Ausführen von Änderungen den Fehler mit der nicht abgedeckten Taskleiste stoppt.
Der Code
Ich habe diese Klasse mit zwei Methoden erstellt: Die erste wechselt in den "Vollbildmodus" und die zweite verlässt den "Vollbildmodus". Sie müssen also nur ein Objekt dieser Klasse erstellen und das Formular, das Sie als Argument für den Vollbildmodus festlegen möchten, an die EnterFullScreenMode-Methode oder an die LeaveFullScreenMode-Methode übergeben:
Anwendungsbeispiel
Ich habe dieselbe Antwort auf eine andere Frage gestellt, bei der ich nicht sicher bin, ob es sich um ein Duplikat handelt oder nicht. (Link zur anderen Frage: Wie wird ein Windows Form im Vollbildmodus über der Taskleiste angezeigt? )
quelle
targetForm.WindowState = FormWindowState.Normal;
Beginn des Vollbildmodus auch einstellen . Dies für die Behandlung des Falls, in dem der Benutzer von einem maximierten Fenster aus im Vollbildmodus arbeitet.Und für die Menustrip-Frage versuchen Sie es
Im Vollbildmodus sollte es dann verschwinden.
Wenn Sie den Vollbildmodus verlassen, setzen Sie das
menustrip1.parent
Formular erneut auf das Formular zurück, und der Menustrip ist wieder normal.quelle
Sie können den folgenden Code verwenden, um ihn an Ihren Systembildschirm anzupassen, und die Taskleiste ist sichtbar.
Keine Notwendigkeit zu verwenden:
Diese Leitung stört
alt+tab
den Wechsel zu einer anderen Anwendung. ("TopMost" bedeutet, dass das Fenster über anderen Fenstern bleibt, es sei denn, sie sind auch mit "TopMost" gekennzeichnet.)quelle
Ich habe kürzlich eine Mediaplayer-Anwendung erstellt und API-Aufrufe verwendet, um sicherzustellen, dass die Taskleiste ausgeblendet war, als das Programm im Vollbildmodus ausgeführt wurde, und dann die Taskleiste wiederhergestellt, wenn das Programm nicht im Vollbildmodus war oder keinen Fokus hatte oder beendet wurde.
quelle
Sie müssen Ihr Fenster so einstellen, dass es ganz oben ist.
quelle
Ich weiß nicht, ob es unter .NET 2.0 funktioniert, aber unter .NET 4.5.2. Hier ist der Code:
Verwendung:
quelle
Fügen Sie im Formularverschiebungsereignis Folgendes hinzu:
quelle
Ich habe an der Zingd-Idee gearbeitet und die Verwendung vereinfacht .
Ich habe auch die Standardtaste F11 hinzugefügt, um den Vollbildmodus umzuschalten.
Konfiguration
Alles befindet sich jetzt in der FullScreen-Klasse, sodass Sie in Ihrem Formular keine Variablen mehr deklarieren müssen. Sie instanziieren einfach ein FullScreen-Objekt im Konstruktor Ihres Formulars:
Beachten Sie, dass dies davon ausgeht, dass das Formular beim Erstellen des FullScreen-Objekts nicht maximiert wird.
Verwendung
Sie verwenden nur eine der Funktionen der Klasse, um den Vollbildmodus umzuschalten:
oder wenn Sie explizit damit umgehen müssen:
Code
quelle