1.
执行如下按钮事件
private void btnFormMax_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
else
{
this.WindowState = FormWindowState.Maximized;
}
}
窗体最大化时 非全屏 不会遮盖任务栏
此时this.FormBorderStyle 默认为 Sizable
2.
执行如下按钮事件
private void btnFormMax_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
else
{
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
}
}
窗体最大化时 会全屏 及遮盖任务栏
此时this.FormBorderStyle 为 None 不会显示窗体标题栏等相关
3.
执行如下按钮事件
private void btnFormMax_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
else
{
this.FormBorderStyle = FormBorderStyle.None;
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.WindowState = FormWindowState.Maximized;
}
}
窗体最大化时 全屏 不会遮盖任务栏
此时this.FormBorderStyle 为 None 不会显示窗体标题栏等相关
设置全屏就是设置窗体的WindowState属性和FormWindowState属性,就像上面的这段网上找到的简单代码所示,但是实际过程中发现,单纯如此并不能控制好状态栏的显示,有时最大化了,设置了任务栏隐藏,却没有效果,实验之后总结如下:
//1.最大化操作必须先FormBorderStyle.None 后FormWindowState.Maximized, // 否则将无法覆盖任务栏。 //2.如果已经FormWindowState.Maximized,则需要先设为非FormWindowState.Maximized 的状态, // 否则后面的FormWindowState.Maximized 将不起作用,违背了“.”的内容。 if (this.WindowState == FormWindowState.Maximized) { this.Hide(); this.WindowState = FormWindowState.Normal; } this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized; this.Show();
实际上,FormBorderStyle.None 状态也会影响Winform中用于获取屏幕可用范围等一系列属性的取值,如 Screen.PrimaryScreen.WorkingArea。