У меня есть приложение WinForms, которое я пытаюсь сделать в полноэкранном режиме (что-то вроде того, что делает VS в полноэкранном режиме). В настоящее время я устанавливаю FormBorderStyle в None и WindowState в Maximized , что дает мне немного больше места, но оно не покрывает панель задач, если она видна. Что мне нужно сделать, чтобы использовать это пространство? Что касается бонусных очков, могу ли я сделать что-то, чтобы сделать autohide MenuStrip тоже отказаться от этого пространства?
Henk Holterman 02 фев. 2009, в 23:55
Поделиться
Поделиться:
7 ответов
Лучший ответ
В базовый вопрос следующий трюк (скрытие панели задач)
private void Form1_Load(object sender, EventArgs e)
Но, что интересно, если вы поменяете эти последние две строки, панель задач останется видимой. Я думаю, что последовательность этих действий будет трудно контролировать с помощью окна свойств.
Henk Holterman 03 фев. 2009, в 17:29
Поделиться
Проблема заказа — почему это не работало для меня прежде. Я на самом деле устанавливал свойства в таком порядке, но когда форма уже развернута, установка границы в none не расширяется, чтобы покрыть панель задач. Я работал вокруг, «восстанавливая» форму, изменяя границу и затем максимизируя.
КАК ЗАПУСТИТЬ ИГРУ В ПОЛНОЭКРАННОМ РЕЖИМЕ | 100% РАБОЧИЙ СПОСОБ nVidia
Grady 03 фев. 2009, в 22:14
У меня это в правильном порядке, и это не работает. Панель задач всегда видна, и приложение не находится под ней, оно просто оставило там свободную область для панели задач. (Win7)
Preza8 31 июль 2013, в 17:36
Henk Holterman 02 авг. 2013, в 20:08
Извините, я не был здесь в течение длительного времени, и я забыл, как я это сделал, но я помню, что после некоторой попытки случайного порядка этих команд помогает.
Preza8 18 сен. 2013, в 12:37
Примечание: по какой-то причине мне пришлось установить свойства и поместить это в код
Joe Phillips 06 июнь 2017, в 04:34
Показать ещё 3 комментария
Проверенное и простое решение
Я искал ответ на этот вопрос в SO и некоторых других сайтах, но один дал ответ, был очень сложным для меня, а некоторые другие ответы просто не работают корректно, поэтому после большого тестирования кода я решил эта головоломка.
Примечание. Я использую Windows 8, а моя панель задач не находится в режиме автоматического скрытия.
Я обнаружил, что установка WindowState в Normal перед выполнением любых изменений остановит ошибку с закрытой панелью задач.
Код
Я создал этот класс, который имеет два метода, первый входит в «полноэкранный режим», а второй оставляет «полноэкранный режим». Таким образом, вам просто нужно создать объект этого класса и передать форму, которую вы хотите установить полный экран, в качестве аргумента методу EnterFullScreenMode или методу LeaveFullScreenMode:
class FullScreen < public void EnterFullScreenMode(Form targetForm) < targetForm.WindowState = FormWindowState.Normal; targetForm.FormBorderStyle = FormBorderStyle.None; targetForm.WindowState = FormWindowState.Maximized; >public void LeaveFullScreenMode(Form targetForm) < targetForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; targetForm.WindowState = FormWindowState.Normal; >>
Пример использования
private void fullScreenToolStripMenuItem_Click(object sender, EventArgs e) < FullScreen fullScreen = new FullScreen(); if (fullScreenMode == FullScreenMode.No) // FullScreenMode is an enum < fullScreen.EnterFullScreenMode(this); fullScreenMode = FullScreenMode.Yes; >else < fullScreen.LeaveFullScreenMode(this); fullScreenMode = FullScreenMode.No; >>
Я поставил этот же ответ на другой вопрос, который я не уверен, является ли это дубликат или нет. (Ссылка на другой вопрос: Как отобразить форму Windows в полноэкранном режиме на панели задач?)
КАК СДЕЛАТЬ ЛЮБУЮ ИГРУ ВО ВЕСЬ ЭКРАН
Zignd 27 май 2013, в 00:56
Поделиться
Из любопытства, почему у вас есть целое перечисление для описания истинного / ложного состояния?
Nathan Ridley 08 июнь 2015, в 04:25
Я написал это давным-давно, когда мне хваталось только писать код, пожалуйста, обратите внимание на мою юную глупость. Это действительно не имеет никакого смысла, и я должен был просто использовать логический тип.
Zignd 09 июнь 2015, в 07:38
Ах, хорошо, вы все равно получили от меня ответ;)
Nathan Ridley 09 июнь 2015, в 22:08
Это сработало для меня, и мне пришлось установить targetForm.WindowState = FormWindowState.Normal; в начале оставив полный экран, а также. Это для обработки случая, когда пользователь идет на весь экран из развернутого окна.
gneri 12 июнь 2018, в 12:24
Показать ещё 2 комментария
И для вопроса menustrip попробуйте установить
MenuStrip1.Parent = Nothing
когда в полноэкранном режиме он должен исчезнуть.
И при выходе из полноэкранного режима reset menustrip1.parent в форму снова, и menustrip будет снова нормальным.
Stefan 03 фев. 2009, в 00:00
Поделиться
Вы можете использовать следующий код, чтобы он соответствовал вашему системному экрану, и панель задач видна.
private void Form1_Load(object sender, EventArgs e) < // hide max,min and close button at top right of Window this.FormBorderStyle = FormBorderStyle.None; // fill the screen this.Bounds = Screen.PrimaryScreen.Bounds; >
Не нужно использовать:
this.TopMost = true;
Эта строка мешает alt+tab переключиться на другое приложение. ( «TopMost» означает, что окно остается поверх других окон, если только они не помечены как «TopMost».)
Raghavendra Devraj 12 фев. 2013, в 13:12
Поделиться
Недавно я сделал приложение Mediaplayer, и я использовал API-вызовы, чтобы убедиться, что панель задач была скрыта, когда программа запускалась в полноэкранном режиме, а затем восстановила панель задач, когда программа не была в полноэкранном режиме или не имела фокуса или была закрыта.
Private Declare Function FindWindow Lib «user32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer Private Declare Function FindWindowEx Lib «user32» Alias «FindWindowExA» (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer Private Declare Function ShowWindow Lib «user32» (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer Sub HideTrayBar() Try Dim tWnd As Integer = 0 Dim bWnd As Integer = 0 tWnd = FindWindow(«Shell_TrayWnd», vbNullString) bWnd = FindWindowEx(tWnd, bWnd, «BUTTON», vbNullString) ShowWindow(tWnd, 0) ShowWindow(bWnd, 0) Catch ex As Exception ‘Error hiding the taskbar, do what you want here.. End Try End Sub Sub ShowTraybar() Try Dim tWnd As Integer = 0 Dim bWnd As Integer = 0 tWnd = FindWindow(«Shell_TrayWnd», vbNullString) bWnd = FindWindowEx(tWnd, bWnd, «BUTTON», vbNullString) ShowWindow(bWnd, 1) ShowWindow(tWnd, 1) Catch ex As Exception ‘Error showing the taskbar, do what you want here..
End Try End Sub
Stefan 03 фев. 2009, в 00:40
Поделиться
Что если две программы сделали это?
Что делать, если ваша программа падает, прежде чем она получит возможность показать панель задач?
Tmdean 03 фев. 2009, в 17:53
Stefan 03 фев. 2009, в 19:03
Источник: overcoder.net
Как сделать чтобы окно программы открывалось на весь экран
1. Решение, но к сожалению для всех запускаемых окон в Windows, а не только папок, как вам было нужно. Параметр системного реестра:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer
dword: maximizeapps=1
Поскольку dword: maximizeapps=1 изначально у меня в реестре вообще не было, создал его, — фиг вам, папки маленькие…
И ещё был совет:
1) правой кнопкой на пустом месте, создать, ярлык
2) пишем там текст «explorer /e,C:» (без кавычек, после запятой адрес нужной папки)
3) жмем правой кнопкой на полученном ярлыке свойства, там выбираем тип запуска «Развернутый на весь экран»
Так можете создать ярлыки для часто открываемых папок, другого способа насколько мне известно нет.
1. Мой компьютер -> Сервис -> Свойства папки
2. Общие -> Обзор папок.
Переключить на «Открывать папки в одном и том же окне»
3. Вид -> Дополнительные параметры.
Снять флажок «Помнить параметры отображения каждой папки»
Источник: forum.ru-board.com
Мой компьютер открывается не на весь экран
Заметил что с некоторых пор по нажатию win+e «мой комп» открывается не на весь экран.
Закрываю все окна, открываю одно (win+e) делаю на полный и закрываю, снова открываю (win+e) вижу размер и положение сохранились, но через какое-то время опять начинают окна открываться не на полный.
Как это можно исправить?
Спасибо
21:38, 22.11.2018 | # 2
emoxam, Вы это всерьез?! Ради этой мелочи решили тему создать.
Запомните, пожалуйста, все окна, как правило, открываются в том размере, в котором они В ПОСЛЕДНИЙ РАЗ (предыдущий раз) были закрыты.
Откройте ОДНО окно. Разверните его в полный экран. Закройте. Откройте снова и насладитесь результатом
21:50, 22.11.2018 | # 3
Цитата Motobot ( )
как правило, открываются в том размере, в котором они В ПОСЛЕДНИЙ РАЗ (предыдущий раз) были закрыты.
так было в XP, в Win7 совсем не так
например, у меня окно Мой комп одного размера, Корзина другого,
папки на рабочем столе тоже имеют свой размер (так привык с ХР) и для этого приходится использовать
стороннюю прогу ShellFolderFixUI
Отредактировано alex192837465 — 22.11.2018, 21:56
21:52, 22.11.2018 | # 4
Motobot, Не совсем так, вернее совсем не так (для Проводника).
Чтобы ЗАПОМНИЛСЯ размер Проводника почти на весь экран, приходится РАЗВОРАЧИВАТЬ его ЧУТЬ меньше размера экрана на 3. 5 мм (экспериментально, не всегда с первого раза получается). Если сразу на ВЕСЬ экран, то НЕ запоминается.
Я уже привык к этому за несколько лет и при чистой установке сразу это проделываю.
21:54, 22.11.2018 | # 5
alex192837465, да ладно Вам рассказывать
Я прежде, чем писать свой пост, проверил и убедился в лишний раз, что именно так и работает, как я выше написал.
Добавлено (22.11.2018, 21:57)
———————————————
lordzia, Вы еще вспомните, как в Windows 95 обстоят дела с этим Здесь речь идет о Windows 10.
Отредактировано alex192837465 — 22.11.2018, 22:04
21:59, 22.11.2018 | # 6
Motobot, Да, спустя некоторое время, запоминается. Вы проверьте сразу после «чистой» установки системы.
Кстати не только у Проводника, а у IE тоже. У EDGE всё нормально, сразу запоминается на весь экран.
Отредактировано Motobot — 22.11.2018, 22:11
22:04, 22.11.2018 | # 7
alex192837465, ради этого ставить систему начисто. Нет. Сколько работаю с Windows, столько имею всегда одно и то же. Размер окна Проводника точно сохраняет свой размер, как оно (окно) было закрыто в прошлый раз. И в чисто установленной системе и в обновленной.
Если у кого-то из вас не так, то это — нонсенс вами созданный и не более того!
P.S. Кстати, сразу после установки системы чистой установки все окна имеют формат 4:3, как в старом телевизоре, что на моем экране 16:9 сморится не комфортно, что приходится сразу же менять растягиванием окон. И это работает! Окна открываются в том размере, в котором я их закрывал в предыдущий раз! Так что и в чистой системе все работает так же, как и сейчас у меня. Не фантазируйте
Отредактировано alex192837465 — 22.11.2018, 22:11
22:10, 22.11.2018 | # 8
Цитата Motobot ( )
точно сохраняет свой размер, как оно (окно) было закрыто в прошлый раз
Вам же объясняют, что при чистой установке по умолчанию размер Проводника развернут НЕ НА ВЕСЬ ЭКРАН. При попытке РАЗВЕРНУТЬ его НА ВЕСЬ ЭКРАН, после закрытия и нового открытия, он СНОВА открывается НЕ НА ВЕСЬ ЭКРАН.
Вы же описываете запоминание ИЗМЕНЕНИЯ ОДНОГО РАЗМЕРА ОКНА НА ДРУГОЙ РАЗМЕР, НО НЕ НА ВЕСЬ ЭКРАН.
Цитата Motobot ( )
Размер окна
22:12, 22.11.2018 | # 9
alex192837465, просто внимательно прочитайте первое сообщение темы и все Вам станет ясно
Удачи!
Отредактировано alex192837465 — 22.11.2018, 22:22
22:13, 22.11.2018 | # 10
Цитата Motobot ( )
ради этого ставить систему начисто. Нет.
А Вы проверьте в следующий раз, когда придется ставить «на чисто».
Цитата Motobot ( )
просто внимательно прочитайте первое сообщение темы
Цитата emoxam ( )
открываю одно (win+e) делаю на полный и закрываю, снова открываю (win+e) вижу размер и положение сохранились, но через какое-то время опять начинают окна открываться не на полный.
Я привел пример из своей практики как сделать,
Цитата alex192837465 ( )
Чтобы ЗАПОМНИЛСЯ размер Проводника почти на весь экран,
только и всего.
И Вам удачи.
10:18, 23.11.2018 | # 11
Автор темы
alex192837465, Вы совершенно правы, боюсь сглазить но мне кажется я победил проблему воспользовавшись документацией по ссылке https://support.microsoft.com/ru-ru/help/813711
те разделы что отсутствуют пропускал. Те что были и я удалил — создавал, как сказано в доке.
P.S. Если у motobot нет какой-то проблемы, это не значит что её нет ни у кого. Винда такая штука, может перекашивать. Странно что я пишу такие очевидные вещи.
22:33, 29.12.2019 | # 12
У меня такая проблема на Windows 10 сегодня была решена — не запоминается размер окон проводника — все окна открываются в манюсеньком размере.
Решение:
Нажмите Пуск, Выключение и удерживая клавишу Shift, Завершение работы.
Запускаем ПК и Винду, затем перезагружаем Винду.
Решение нашёл тут:
https://answers.microsoft.com/ru-ru. 856b5ef
23:41, 29.12.2019 | # 13
Цитата timotv ( )
У меня такая проблема на Windows 10 сегодня была решена
Вы читали внимательно совет, на который ссылаетесь? Это решение работает только на один сеанс.
А так как речь идёт про «Быстрый запуск», то проще его отключить навсегда в Панели управления — Электропитание — Действия кнопок питания — Изменения параметров, которые сейчас недоступны — снять галочку «Включить быстрый запуск»..
Источник: pcportal.org