Winform ClientSize exceeds screen dimensions after Maximize w/ no border
我正在使用此代码在正常的 WindowState(具有相当大的边框样式)和最大化(具有无边框样式)之间切换。
1 2 3 4 5 6 7 8 9 10 | if (WindowState != FormWindowState.Maximized) { WindowState = FormWindowState.Maximized; FormBorderStyle = FormBorderStyle.None; } else { WindowState = FormWindowState.Normal; FormBorderStyle = FormBorderStyle.Sizable; } |
更改后我也在动态调整表单上一些控件的布局。我发现
是否有一种简单的方法可以确保表单不超过屏幕限制(除了手动检查屏幕大小并强制表单达到该大小)?
事实证明,通过颠倒最大化和边框样式更改操作的顺序可以解决。如果在最大化屏幕之前关闭边框,则表单
工作代码:
1 2 3 4 5 | if (WindowState != FormWindowState.Maximized) { FormBorderStyle = FormBorderStyle.None; WindowState = FormWindowState.Maximized; } |