调整PropertyGrid控件的大小

时间:2011-09-04 13:36:08

标签: c# winforms propertygrid

我编写的代码会调整Control及其所有控件的大小,但是PropertyGrid存在问题。用户界面是一个包含TabControl tabContAll的GroupBox。在tabContAll中是一个包含PropertyGrid的TabPage。

private void ResizeUI () 
{
    ui.Location = new Point (this.ClientRectangle.Left, this.ClientRectangle.Top + menubar.Height);
    ui.Size = new Size (this.ClientRectangle.Width, this.ClientRectangle.Height - menubar.Height);
    ResizeControl (tabContAll, ui);
}

private void ResizeControl (Control control, Control parent) 
{
    control.Location = new Point (parent.ClientRectangle.Left, parent.ClientRectangle.Top);
    control.Size = new Size (parent.ClientRectangle.Width, parent.ClientRectangle.Height);

    foreach (Control child in control.Controls) {
        ResizeControl (child, control);
    }
}

当表单加载时调用此函数,这与what it looks like相比,如果我在循环中注释掉调整大小,那么PropertyGrid不会调整大小:

enter image description here

enter image description here

此外,当调整大小时,描述不起作用。它只显示了该物业的名称。

1 个答案:

答案 0 :(得分:3)

我强烈建议您不要为控件调整大小编写代码,除非您需要非常自定义的行为。

改为设置Control.DockControl.Anchor属性,剩下的就是它们。

例如,通过为DockDockStyle.Fill设置TabControl属性为PropertyGrid,可以轻松解决您的案例(显然,删除自定义调整大小的方法)

这是WinForms自定义控件设计的完整MSDN演练:

http://msdn.microsoft.com/en-us/library/6hws6h2t.aspx