C# 调整面板C中嵌入式用户控件的大小#
在C#中使用WinForms,我很难让嵌入式用户控件正确调整大小。我可以毫无问题地将其添加到面板中,并且面板会按照我的预期(和希望)调整大小 要添加UserControl,我将执行以下操作:C# 调整面板C中嵌入式用户控件的大小#,c#,winforms,resize,C#,Winforms,Resize,在C#中使用WinForms,我很难让嵌入式用户控件正确调整大小。我可以毫无问题地将其添加到面板中,并且面板会按照我的预期(和希望)调整大小 要添加UserControl,我将执行以下操作: content.Controls.RemoveAt(0); content.Controls.Add(c); content.Controls[0].Dock = DockStyle.Fill; content.Refresh(); 我不知道如何使新添加的控件正确地调整大小,我也尝试过使用锚定来调整顶部、
content.Controls.RemoveAt(0);
content.Controls.Add(c);
content.Controls[0].Dock = DockStyle.Fill;
content.Refresh();
我不知道如何使新添加的控件正确地调整大小,我也尝试过使用锚定来调整顶部、底部、左侧、右侧,但没有效果。非常感谢您的帮助。您是否100%确定控件[0]在添加后确实引用了您的控件
控件的本地变量仍然有效,您可以通过
c.dock=DockStyle.Fill代码>在下面添加将使用父控件大小调整用户控件的大小
this.Dock = DockStyle.Fill;
但是,如果要调整用户控件的子控件的大小,则必须正确设置其停靠值和锚定值。否则,主用户控件将调整大小,但用户控件的内部子控件将保持原样
你说过
我已经弄明白了。
在作为所有添加面板基础的面板上,添加Resize
事件的处理程序。
在OnResize()
添加:
private void SummaryData_Resize(object sender, EventArgs e)
{
foreach (MyPanel pan in this.Controls)
{
pan.Dock = DockStyle.Fill;
}
}
这对我很有效。
我已经调试了代码,似乎在OnResize
上,我所有的面板都丢失了停靠设置。使用content.Controls[c.Name].Dock=DockStyle.Fill;具有相同的结果(即根本不调整大小)。添加这个.Dock=DockStyle.Fill在UserControl中似乎有点帮助,但仍然无法正确调整大小(控件向下移动,而不是向下调整大小)@Joeb:那么您需要在用户控件内正确定义控件的停靠/锚定。框架无法神奇地知道您希望这些东西如何调整大小。谢谢,原来在混合中的某个地方有一个幻影面板,但是检查了所有内容并添加了this.Dock=DockStyle.Fill
似乎已经完成了我想要的。谢谢你们两位!