如何防止 none state form 在 c# 中被最大化
how to prevent none state form from being maximized in c#
我创建了一个表单并将其 FormBorderStyle
属性 设置为 none
。
当我按下 Windows + UP
时,表格将 最大化 。我怎样才能防止表格最大化?
我试过了
private void logIn_Resize(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
但这不是我想要的。使用上面的代码,当我按 Windows + Up
时,表单将最大化,然后恢复到正常状态。但我想基本上阻止它。
// Define the border style of the form to a dialog box.
form1.FormBorderStyle = FormBorderStyle.FixedDialog;
// Set the MaximizeBox to false to remove the maximize box.
form1.MaximizeBox = false;
// Set the MinimizeBox to false to remove the minimize box.
form1.MinimizeBox = false;
归功于 How do I disable form resizing for users?
将窗体的 MaximizeBox 设置为 False 应该足以停止此 Aero Snap 功能。但是 Form.CreateParams 出于某种神秘的原因计算了错误的样式标志。由于 4.7.1 更新,我现在不能单步执行它,也没有看到源代码中的错误。这可能与在系统菜单中禁用它有关,但与样式标志无关,只是猜测。
Anyhoo,强行关闭原生风格标志确实解决了问题。将此代码复制并粘贴到您的表单中 class:
protected override CreateParams CreateParams {
get {
const int WS_MAXIMIZEBOX = 0x00010000;
var cp = base.CreateParams;
cp.Style &= ~WS_MAXIMIZEBOX;
return cp;
}
}
我创建了一个表单并将其 FormBorderStyle
属性 设置为 none
。
当我按下 Windows + UP
时,表格将 最大化 。我怎样才能防止表格最大化?
我试过了
private void logIn_Resize(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
但这不是我想要的。使用上面的代码,当我按 Windows + Up
时,表单将最大化,然后恢复到正常状态。但我想基本上阻止它。
// Define the border style of the form to a dialog box.
form1.FormBorderStyle = FormBorderStyle.FixedDialog;
// Set the MaximizeBox to false to remove the maximize box.
form1.MaximizeBox = false;
// Set the MinimizeBox to false to remove the minimize box.
form1.MinimizeBox = false;
归功于 How do I disable form resizing for users?
将窗体的 MaximizeBox 设置为 False 应该足以停止此 Aero Snap 功能。但是 Form.CreateParams 出于某种神秘的原因计算了错误的样式标志。由于 4.7.1 更新,我现在不能单步执行它,也没有看到源代码中的错误。这可能与在系统菜单中禁用它有关,但与样式标志无关,只是猜测。
Anyhoo,强行关闭原生风格标志确实解决了问题。将此代码复制并粘贴到您的表单中 class:
protected override CreateParams CreateParams {
get {
const int WS_MAXIMIZEBOX = 0x00010000;
var cp = base.CreateParams;
cp.Style &= ~WS_MAXIMIZEBOX;
return cp;
}
}