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