【发布时间】:2011-01-08 01:11:12
【问题描述】:
我有一个 System.Windows.Forms.Form 我需要在运行时设置客户区的大小。但奇怪的是,即使我将ClientSize property 设置为 800x600,该区域在右侧和底部都小了 4 个像素,这导致我的内容在两个方向上都被剪裁了 4 个像素。
在 Windows XP 和 Windows Classic 主题中都观察到此行为。
根据我对 MSDN 文档的理解,这应该是我想做的——但事实并非如此。
客户区的大小 表格是表格的大小,不包括 边框和标题栏。
这里的示例代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.ClientSize = new Size(800, 600);
}
}
什么给了?我在the comments of an answer to another question 中注意到这发生在其他人身上。有什么方法可以可靠地设置客户区的大小?
【问题讨论】:
-
我刚刚尝试了该代码(在 VS2008、Win7 上),它运行正常,没有任何额外的像素(在屏幕截图上测量)。也许您使用的特定主题具有被视为边框的不可见部分?
-
您的表单是否设置了最大高度和最大宽度?否则,尺寸设置的效果非常可预测。
-
感谢您的建议。我尝试设置最大/最小大小以及 Windows XP 和 Windows Classic 主题。我仍然看到表格右侧和底部太小了 4 个像素。 :(
标签: c# .net size dimensions