Một giải pháp đã được thử nghiệm và đơn giản
Tôi đã tìm kiếm câu trả lời cho câu hỏi này trong SO và một số trang web khác, nhưng một người đưa ra một câu trả lời rất phức tạp đối với tôi và một số câu trả lời khác chỉ đơn giản là không hoạt động chính xác, vì vậy sau nhiều lần kiểm tra mã, tôi đã giải được câu đố này.
Lưu ý: Tôi đang sử dụng Windows 8 và thanh tác vụ của tôi không ở chế độ tự động ẩn.
Tôi phát hiện ra rằng việc đặt WindowState thành Bình thường trước khi thực hiện bất kỳ sửa đổi nào sẽ ngăn lỗi với thanh tác vụ không được che phủ.
Mật mã
Tôi đã tạo lớp này có hai phương thức, phương thức đầu tiên đi vào "chế độ toàn màn hình" và phương thức thứ hai rời khỏi "chế độ toàn màn hình". Vì vậy, bạn chỉ cần tạo một đối tượng của lớp này và chuyển Biểu mẫu bạn muốn đặt toàn màn hình làm đối số cho phương thức EnterFullScreenMode hoặc phương thức 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;
}
}
Ví dụ sử dụng
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;
}
}
Tôi đã đặt câu trả lời tương tự này cho một câu hỏi khác mà tôi không chắc liệu có trùng lặp hay không của câu hỏi này. (Liên kết đến câu hỏi khác: Làm thế nào để hiển thị Biểu mẫu Windows toàn màn hình trên đầu thanh tác vụ? )