Перевірене і просте рішення
Я шукав відповідь на це питання в 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 у повноекранному режимі вгорі панелі завдань? )