C# 调整PropertyGrid控件的大小

C# 调整PropertyGrid控件的大小,c#,winforms,propertygrid,C#,Winforms,Propertygrid,我编写了一些代码,可以调整控件及其所有控件的大小,但PropertyGrid存在一个问题。用户界面是一个包含TabControl tabContAll的GroupBox。在tabContAll中,是一个包含PropertyGrid的选项卡页 private void ResizeUI () { ui.Location = new Point (this.ClientRectangle.Left, this.ClientRectangle.Top + menubar.Height);

我编写了一些代码,可以调整控件及其所有控件的大小,但PropertyGrid存在一个问题。用户界面是一个包含TabControl tabContAll的GroupBox。在tabContAll中,是一个包含PropertyGrid的选项卡页

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);
    }
}
加载表单时调用此函数,这与我在循环中注释掉调整大小以使PropertyGrid不调整大小的情况相比较:


此外,当调整其大小时,说明不起作用。它只显示属性的名称。

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

改为设置一个或多个属性,其余的留给他们

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

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


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

改为设置一个或多个属性,其余的留给他们

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

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


也许我错了,但看起来您的问题可以通过使用winforms控件+1的
停靠
锚定
来解决,而无需额外编码。看起来你想要一个DockPanelMaybe我错了,但是看起来你的问题可以不用额外的编码就解决了,只需使用winforms控件+1的
停靠
锚定
。看起来你想要一个DockPanelI不知道有这样一个属性,我真的没有花时间检查控件的所有属性。我想我吸取了教训。我不知道有这样一个属性,我真的没有花时间检查控件的所有属性。我想我吸取了教训。