Winform客户端将超过屏幕尺寸,之后最大化w/ no边框



我正在使用此代码在正常的窗口(具有相当大的边框样式)之间切换并最大化(无边框样式)。

if (WindowState != FormWindowState.Maximized)
{
    WindowState = FormWindowState.Maximized;
    FormBorderStyle = FormBorderStyle.None; 
}
else
{
    WindowState = FormWindowState.Normal;
    FormBorderStyle = FormBorderStyle.Sizable;
}

我还在动态调整更改后表单上某些控件的布局。我发现ClientSize.WidthClientSize.Height值超过了最大化/无边界状态(客户端大小:1936x1216,实际监视器分辨率:1920x1200)的实际监视器分辨率。这导致某些控件被放在范围之外。

是否有一种简单的方法来确保表单不超过屏幕限制(除了手动检查屏幕尺寸并将表单强加于该尺寸之外)?

它可以通过反转最大和边框样式更改操作的顺序来解析。如果在最大化屏幕之前关闭了边框,则表格ClientSize值将与监视器大小完全匹配。

工作代码:

if (WindowState != FormWindowState.Maximized)
{
    FormBorderStyle = FormBorderStyle.None;
    WindowState = FormWindowState.Maximized;
}

相关内容

最新更新