Mam aplikację WinForms, którą próbuję wyświetlić na pełnym ekranie (trochę tak, jak robi to VS w trybie pełnoekranowym).
Obecnie ustawiam się FormBorderStyle
na None
i WindowState
do Maximized
co daje mi trochę więcej miejsca, ale nie zakrywa paska zadań, jeśli jest widoczny.
Co muszę zrobić, aby wykorzystać również tę przestrzeń?
Jeśli chodzi o punkty bonusowe, czy jest coś, co mogę zrobić, aby moje MenuStrip
autoukrywanie również zrezygnowało z tego miejsca?
Sprawdzone i proste rozwiązanie
Szukałem odpowiedzi na to pytanie w SO i kilku innych witrynach, ale jedna dała odpowiedź była dla mnie bardzo złożona, a inne odpowiedzi po prostu nie działają poprawnie, więc po wielu testach kodu rozwiązałem tę zagadkę.
Uwaga: używam systemu Windows 8 i mój pasek zadań nie jest w trybie automatycznego ukrywania.
Odkryłem, że ustawienie WindowState na Normal przed wykonaniem jakichkolwiek modyfikacji zatrzyma błąd z nie pokrytym paskiem zadań.
Kod
Stworzyłem tę klasę, która ma dwie metody, pierwsza wchodzi w „tryb pełnego ekranu”, a druga wychodzi z „trybu pełnego ekranu”. Wystarczy więc utworzyć obiekt tej klasy i przekazać Formularz, który chcesz ustawić na pełny ekran jako argument do metody EnterFullScreenMode lub do metody LeaveFullScreenMode:
Przykład użycia
Umieściłem tę samą odpowiedź na innym pytaniu, co do którego nie jestem pewien, czy jest to duplikat, czy nie. (Link do drugiego pytania: Jak wyświetlić formularz systemu Windows na pełnym ekranie u góry paska zadań? )
źródło
targetForm.WindowState = FormWindowState.Normal;
na początku wyjście z pełnego ekranu. To służy do obsługi przypadku, gdy użytkownik przechodzi na pełny ekran ze zmaksymalizowanego okna.A jeśli chodzi o pytanie menustrip, spróbuj ustawić
w trybie pełnoekranowym powinien zniknąć.
Po wyjściu z trybu pełnoekranowego zresetuj ponownie
menustrip1.parent
do formularza, a menu znów będzie normalne.źródło
Możesz użyć następującego kodu, aby dopasować się do ekranu systemu, a pasek zadań jest widoczny.
Nie ma potrzeby używania:
Ta linia przeszkadza w
alt+tab
przełączaniu się do innej aplikacji. („TopMost” oznacza, że okno pozostaje nad innymi oknami, chyba że są one również oznaczone jako „TopMost”).źródło
Niedawno utworzyłem aplikację Mediaplayer i użyłem wywołań API, aby upewnić się, że pasek zadań był ukryty, gdy program działał na pełnym ekranie, a następnie przywrócił pasek zadań, gdy program nie był w trybie pełnoekranowym lub nie był aktywny lub został zamknięty.
źródło
Musisz ustawić okno tak, aby było najwyżej.
źródło
Nie wiem, czy zadziała na .NET 2.0, ale zadziałało mi na .NET 4.5.2. Oto kod:
Stosowanie:
źródło
Do zdarzenia przenoszenia formularza dodaj to:
źródło
Pracowałem nad pomysłem Zingda i uprościłem go w użyciu.
Dodałem również standardowy klawisz F11 do przełączania trybu pełnoekranowego.
Ustawiać
Wszystko jest teraz w klasie FullScreen, więc nie musisz deklarować wielu zmiennych w swoim Form. Po prostu umieszczasz obiekt FullScreen w konstruktorze formularza:
Należy pamiętać, że przy założeniu, że formularz nie jest zmaksymalizowany podczas tworzenia obiektu FullScreen.
Stosowanie
Po prostu użyj jednej z funkcji classe, aby przełączyć tryb pełnoekranowy:
lub jeśli musisz to zrobić jawnie:
Kod
źródło