Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置窗体可见区域的大小,减去标题和边框?_C#_Forms_Winforms_Visual Studio_Dimension - Fatal编程技术网

C# 如何设置窗体可见区域的大小,减去标题和边框?

C# 如何设置窗体可见区域的大小,减去标题和边框?,c#,forms,winforms,visual-studio,dimension,C#,Forms,Winforms,Visual Studio,Dimension,我想将我的表格设置为300*300,不包括标题和边框 如果我使用Size属性,它确实包含这些值 有办法吗?您有两种选择,如下所示: this.ClientSize = new Size(300, 300); 要从表单中删除标题和边框,请禁用表单的FormBorderStyle属性 使用ClientSize属性设置窗体内部,如下所示: this.ClientSize = new Size(300, 300); 为什么不考虑边框和标题栏的大小 int BorderWidth = (this.

我想将我的表格设置为300*300,不包括标题和边框

如果我使用Size属性,它确实包含这些值


有办法吗?

您有两种选择,如下所示:

this.ClientSize = new Size(300, 300);
  • 要从表单中删除标题和边框,请禁用表单的
    FormBorderStyle
    属性

  • 使用
    ClientSize
    属性设置窗体内部,如下所示:

    this.ClientSize = new Size(300, 300);
    

为什么不考虑边框和标题栏的大小

int BorderWidth = (this.Width – this.ClientSize.Width) /2;
int TitlebarHeight = this.Height – this.ClientSize.Height – 2 * BorderWidth;

我找到了公式。

可以通过设计器工具设置适当的大小: 1.将FormBorderSize设置为“无”。 2.设置首选尺寸(例如“300;300”)。
3.将FormBorderSize设置为首选边框(所需的额外空间将自动添加到Size属性)。

因此无法在设计器中设置clientSize,对吗?我只需要一个300x300的窗口,不包括边框和headerCorrect,似乎并没有任何方法可以在designer中设置它。但是,您始终可以在Load或Paint事件中设置此选项,用户将永远不会知道这两者之间的区别。要添加到我的最后一条评论中,最好在Load事件中执行此操作,因为它在加载时发生一次,而在整个执行过程中会多次进行绘制,因此,每次绘制表单时都重置客户端大小是没有意义的。我不知道它在vs2010中是如何工作的,但在vs2005中它确实可以工作。this.ClientSize提供了无边框的大小。这可能不是OP要求的,但肯定是我需要的。