调整包含UserControl的面板的大小

我有一个UserControl包含不可见的控件,为了使它们可见,UserControl调整大小。

我需要调整包含UserControl的Panel,但我不知道如何。


这种行为很好地通过面板和表单类来处理,没有明确的尺寸(并且没有在用户使用高DPI监视器或使用大或超大字体设置时引入布局错误。

1)创建一个带有停靠的FlowLayoutPanel的窗体。

2)将Form和FlowLayoutPanel的AutoSize设置为true,并将AutoSizeMode设置为GrowAndShrink

3)添加你的面板和内容。

4)以编程方式将所需面板的Visible属性设置为隐藏

hiddenPanel.Visible = false;

隐

5)或者是真的

hiddenPanel.Visible = true;

可见


把这段代码放在usercontrol中:

Size last = new Size(0, 0);

private void Me_Resize(object sender, System.EventArgs e)
{
    if (last != new Size(0, 0)) {
        this.Parent.Size = Size.Add(this.Parent.Size, Size.Subtract(this.Size, last));
    }
    last = this.Size;
}

还会保留边距(例如,如果面板大于您的用户控件或在您的用户控件旁边有其他控件)。


如果您想将其大小调整为特定大小,您可以在后面的代码中执行此操作:

Size panelSize = new Size(500, 500);
usercontrol1.Parent.Size = panelSize;

如果您想从中调整大小,可以将此代码添加到用户控件中。

链接地址: http://www.djcxy.com/p/61997.html

上一篇: Resizing Panel Containing UserControl

下一篇: Prevent flashing whilst typing/copying to rich text box