【问题标题】:Form's client area not rendering size set in Form.ClientSizeForm.ClientSize 中设置的表单客户区未呈现大小
【发布时间】: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


【解决方案1】:

事实证明,我的问题根本不在于表单。该表单中有一个 System.Windows.Forms.WebBrowser 控件,并且有一个边框。由于 WebBrowser 控件没有任何边框属性,我没有怀疑。

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 2023-03-30
    • 2010-10-14
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    相关资源
    最近更新 更多