我创建了一个表单并将其 FormBorderStyle
属性设置为 none
。
当我按Windows + UP
时,表单将最大化。如何防止表单最大化?
我试过了
private void logIn_Resize(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
但这不是我想要的。使用上面的代码,当我按 Windows + Up
时,表单将最大化,然后恢复到正常状态。但我想基本上阻止它。
最佳答案
将表单的 MaximizeBox 设置为 False 应该足以停止此 Aero Snap 功能。但由于某些神秘的原因,Form.CreateParams 计算了错误的样式标志。由于 4.7.1 更新,我现在无法单步执行,并且在源代码中没有看到错误。它可能与在系统菜单中禁用它有关,但与样式标志无关,只是猜测。
总之,强行敲掉原生风格旗帜确实可以解决问题。将此代码复制粘贴到您的表单类中:
protected override CreateParams CreateParams {
get {
const int WS_MAXIMIZEBOX = 0x00010000;
var cp = base.CreateParams;
cp.Style &= ~WS_MAXIMIZEBOX;
return cp;
}
}
关于c# - 如何防止在c#中最大化无状态形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47992355/