调整包含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