У меня есть приложение WinForms, которое я пытаюсь сделать в полноэкранном режиме (что-то вроде того, что VS делает в полноэкранном режиме).
В настоящее время я устанавливаю FormBorderStyle
в None
и WindowState
к , Maximized
что дает мне немного больше пространства, но это не распространяется через панель задач , если она видна.
Что мне нужно сделать, чтобы использовать это пространство?
Что касается бонусных баллов, могу ли я что-то сделать, чтобы MenuStrip
автоматически скрыть свое место, чтобы освободить и это место?
Проверенное и простое решение
Я искал ответ на этот вопрос в SO и некоторых других сайтах, но один из ответов был для меня очень сложным, а некоторые другие ответы просто не работают правильно, поэтому после большого тестирования кода я решил эту головоломку.
Примечание. Я использую Windows 8, и моя панель задач не находится в режиме автоматического скрытия.
Я обнаружил, что установка WindowState на Normal перед выполнением любых изменений остановит ошибку с непокрытой панелью задач.
Код
Я создал этот класс с двумя методами, первый входит в «полноэкранный режим», а второй выходит из «полноэкранного режима». Итак, вам просто нужно создать объект этого класса и передать форму, которую вы хотите установить в полноэкранном режиме, в качестве аргумента методу EnterFullScreenMode или методу LeaveFullScreenMode:
Пример использования
Я поместил тот же ответ на другой вопрос, и я не уверен, является ли он дубликатом этого вопроса или нет. (Ссылка на другой вопрос: как отобразить форму Windows в полноэкранном режиме поверх панели задач? )
источник
targetForm.WindowState = FormWindowState.Normal;
в начале выхода из полноэкранного режима. Это для обработки случая, когда пользователь переходит в полноэкранный режим из развернутого окна.И для вопроса о меню попробуйте установить
в полноэкранном режиме он должен исчезнуть.
А при выходе из полноэкранного
menustrip1.parent
режима снова сбросьте форму, и меню снова станет нормальным.источник
Вы можете использовать следующий код, чтобы он соответствовал вашему системному экрану, и панель задач была видна.
Не нужно использовать:
Эта строка мешает
alt+tab
переключиться на другое приложение. («TopMost» означает, что окно остается поверх других окон, если они также не отмечены «TopMost».)источник
Недавно я сделал приложение Mediaplayer и использовал вызовы API, чтобы убедиться, что панель задач была скрыта, когда программа работала в полноэкранном режиме, а затем восстановил панель задач, когда программа не была в полноэкранном режиме, не имела фокуса или была закрыта.
источник
Вам нужно сделать ваше окно самым верхним.
источник
Не знаю, будет ли он работать на .NET 2.0, но у меня он работал на .NET 4.5.2. Вот код:
Использование:
источник
В событии перемещения формы добавьте это:
источник
Я работал над идеей Zingd и сделал ее проще в использовании.
Я также добавил стандартную клавишу F11 для переключения полноэкранного режима.
Настроить
Теперь все находится в классе FullScreen, поэтому вам не нужно объявлять кучу переменных в своей форме. Вы просто создаете экземпляр объекта FullScreen в конструкторе формы:
Обратите внимание, это предполагает, что форма не развернута при создании объекта FullScreen.
использование
Вы просто используете одну из функций класса для переключения в полноэкранный режим:
или если вам нужно обработать это явно:
Код
источник