我正在使用此代码在正常的窗口(具有相当大的边框样式)之间切换并最大化(无边框样式)。
if (WindowState != FormWindowState.Maximized)
{
WindowState = FormWindowState.Maximized;
FormBorderStyle = FormBorderStyle.None;
}
else
{
WindowState = FormWindowState.Normal;
FormBorderStyle = FormBorderStyle.Sizable;
}
我还在动态调整更改后表单上某些控件的布局。我发现ClientSize.Width
和ClientSize.Height
值超过了最大化/无边界状态(客户端大小:1936x1216,实际监视器分辨率:1920x1200)的实际监视器分辨率。这导致某些控件被放在范围之外。
是否有一种简单的方法来确保表单不超过屏幕限制(除了手动检查屏幕尺寸并将表单强加于该尺寸之外)?
它可以通过反转最大和边框样式更改操作的顺序来解析。如果在最大化屏幕之前关闭了边框,则表格ClientSize
值将与监视器大小完全匹配。
工作代码:
if (WindowState != FormWindowState.Maximized)
{
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
}