Проверенное и простое решение
Я искал ответ на этот вопрос в 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 в полноэкранном режиме поверх панели задач? )