在.NET WinForms中,如何制作高度小于34的无边框表单?

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

我获取了使用项目创建的Form,并将.FormBorderStyle属性设置为None

然后我将Form的高度设置为18。

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

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

我需要表格高度为18,而不是34 ..

我能做些什么来达到我想要的高度?

谢谢

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

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

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

假设名为OKButton的控件是最底层的控件。 根据需要调整。