在 .NET WinForms 中,如何制作高度小于 34 的无边框窗体

本文关键字:小于 窗体 边框 高度 何制作 WinForms NET | 更新日期: 2023-09-27 18:34:10

我正在使用Visual Studio,并在C#中创建了一个使用WinForms的新Windows应用程序。

我采用了与项目一起创建的表单,并设置了 .属性"无"。

然后,我将窗体的高度设置为 18。

在设计器上一切都很好,它确实显示为高度= 18。

但是当我运行它时,高度会增加,并且由于某种原因变为 34。

我需要表单高度为 18,而不是 34。

该怎么做才能让它达到我想要的高度?

谢谢

在 .NET WinForms 中,如何制作高度小于 34 的无边框窗体

WinForms 将最小大小约束应用于基于保持标题栏可用的窗体。 即使表单没有,大多数程序员称之为"bug"的怪癖。

但是,您仍可以通过在 Load 事件的事件处理程序中设置 ClientSize 属性来重写最终大小。 请注意,需要在具有不同视频 DPI 设置的计算机上重新缩放窗口,您不希望对大小进行硬编码。 最佳方法是根据控件的位置调整其大小。 例如:

    protected override void OnLoad(EventArgs e) {
        base.OnLoad(e);
        this.ClientSize = new Size(
            this.ClientSize.Width,
            OKButton.Bottom + OKButton.Margin.Bottom
        );
    }

假设名为 OKButton 的控件是底部控件。 根据需要进行调整。