如何防止在c#中最大化无状态形式

2024-02-20

我创建了一个表单并设置了它FormBorderStyle财产给none。 当我按下Windows + UP形式将是最大化。如何防止表单最大化? 我试过

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

但这不是我想要的。当我按上面的代码时Windows + Upform 将最大化,然后恢复正常状态。但我想从根本上防止它。


将表单的 MaximizeBox 设置为 Falseshould足以阻止这个 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;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止在c#中最大化无状态形式 的相关文章

随机推荐