2

我创建了一个表单并将其FormBorderStyle属性设置为none. 当我按下Windows + UP表格时将被最大化。我怎样才能防止表格最大化?我试过了

private void logIn_Resize(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Normal;
        }

但它不是我想要的。当我按下Windows + Up表格时,上面的代码将最大化,然后它恢复到正常状态。但我想基本上阻止它。

4

2 回答 2

5

将表单的 MaximizeBox 设置为 False应该足以停止此 Aero Snap 功能。但是 Form.CreateParams 出于某种神秘的原因计算了错误的样式标志。由于 4.7.1 更新,我现在无法单步执行,并且在源代码中看不到错误。它可能与在系统菜单中禁用它有关,但与样式标志无关,只是猜测。

Anyhoo,用武力敲掉原生风格的旗帜确实解决了这个问题。将此代码复制粘贴到您的表单类中:

protected override CreateParams CreateParams {
    get {
        const int WS_MAXIMIZEBOX = 0x00010000;
        var cp = base.CreateParams;
        cp.Style &= ~WS_MAXIMIZEBOX;
        return cp;
    }
}
于 2017-12-27T15:29:33.737 回答
-1
// 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;

归功于如何禁用用户的表单调整大小?

于 2017-12-27T12:50:26.007 回答