C# 如何防止c语言中的非状态形式最大化#
我已经创建了一个表单,并将其C# 如何防止c语言中的非状态形式最大化#,c#,winforms,maximize,maximize-window,formborderstyle,C#,Winforms,Maximize,Maximize Window,Formborderstyle,我已经创建了一个表单,并将其FormBorderStyle属性设置为none。 当我按下Windows+UP时,表单将最大化。我怎样才能防止表单最大化? 我试过了 但这不是我想要的。当我按下Windows+Up时,上面的代码将使窗体最大化,然后它将恢复到正常状态。但我想从根本上预防它 // Define the border style of the form to a dialog box. form1.FormBorderStyle = FormBorderStyle.FixedDialog
FormBorderStyle
属性设置为none
。
当我按下Windows+UP
时,表单将最大化。我怎样才能防止表单最大化?
我试过了
但这不是我想要的。当我按下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;
归功于将表单的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;
}
}
有帮助吗?@ HANS,您可以考虑仔细查看它(因为bug或其他东西),因为在<代码> FrimBrdStype中没有任何东西可以阻止这种行为。代码>修复对话框将停止手动调整大小
MaximiseBox=False
阻止您最大化窗口,并且MinimiseBox=False
也应该这样做。
protected override CreateParams CreateParams {
get {
const int WS_MAXIMIZEBOX = 0x00010000;
var cp = base.CreateParams;
cp.Style &= ~WS_MAXIMIZEBOX;
return cp;
}
}