Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# Form.DesktopBounds.Width似乎已关闭10个像素。如何确定正确的表格宽度?_C#_Winforms - Fatal编程技术网

C# Form.DesktopBounds.Width似乎已关闭10个像素。如何确定正确的表格宽度?

C# Form.DesktopBounds.Width似乎已关闭10个像素。如何确定正确的表格宽度?,c#,winforms,C#,Winforms,访问Form.DesktopBounds.Width属性时,它似乎关闭了10个像素。窗口边框的每侧似乎也有5个像素。如何确定正确的表单宽度,包括表单周围的边框。根据,如果要获取控件(包括其非客户端元素)的大小和位置,只需使用form.Bounds。对于宽度,这将是Form.Bounds.width 我相信我对格式.宽度的评论建议也会起作用,因为顶部,左侧,宽度和高度都来自边界本身。我刚刚遇到了这个问题 我从Form.Height和Form.Bounds.Height中获得“off by 10”的

访问Form.DesktopBounds.Width属性时,它似乎关闭了10个像素。窗口边框的每侧似乎也有5个像素。如何确定正确的表单宽度,包括表单周围的边框。

根据,如果要获取控件(包括其非客户端元素)的大小和位置,只需使用
form.Bounds
。对于宽度,这将是
Form.Bounds.width


我相信我对
格式.宽度
的评论建议也会起作用,因为
顶部
左侧
宽度
高度
都来自
边界本身。

我刚刚遇到了这个问题

我从
Form.Height
Form.Bounds.Height
中获得“off by 10”的数字。高度值在Windows XP上是正确的,但在Windows 7上关闭10。(
Width
值也处于禁用状态。)


FormBorderStyle
Sizeable
时,则值是正确的。但是当它是
FixedToolWindow
时,我会得到10倍的值。

使用
Form.Width
是否会得到不同的结果?如果可以将其设置为6像素而不是10像素,那么有一个解释。表单的
FormBorderStyle
属性的值是多少?这取决于窗口边框样式。这取决于在窗口边框样式上。如果窗口的边框为“无”,则边框与窗口大小相同。但是使用默认的固定单边框样式,实际上边框比右侧、左侧和底部的显示区域大5个像素。我认为,这些像素中的一个是薄的蓝色边框。其他4个是透明区域。如果这样的表单显示在桌面上,您可以通过单击表单右侧附近的桌面来选择它。这似乎是一个奇怪的设计选择,但对微软来说并不罕见。