调整面板C#中嵌入的用户控件的大小
本文关键字:用户 控件 调整 | 更新日期: 2023-09-27 17:58:07
在C#中使用WinForms,我很难让嵌入式用户控件正确调整大小。我可以毫无问题地将其添加到面板中,并且面板会根据我的期望(和希望)调整大小。
为了添加UserControl,我正在执行以下操作:
content.Controls.RemoveAt(0);
content.Controls.Add(c);
content.Controls[0].Dock = DockStyle.Fill;
content.Refresh();
我不知道如何让新添加的控件正确调整大小,我也尝试过使用顶部、底部、左侧和右侧的锚点,但都没有用。任何帮助都将不胜感激,谢谢。
添加以下内容将使用父控件大小调整用户控件的大小。
this.Dock = DockStyle.Fill;
但是,如果要调整用户控件的子控件的大小,则必须正确设置它们的停靠值和锚定值。否则,主用户控件将调整大小,但用户控件的内部子控件将保持原样。
你说过;
<lt;控件向下移动,而不是向下调整的大小
若有一些子控件要垂直拉伸,可以尝试FlowLayout面板。
您是否100%确定Controls[0]在添加后实际上引用了您的控件?
控件的本地var仍然有效,您可以通过c.Dock = DockStyle.Fill;
测试是否将dock设置为正确的值
我已经想通了
在作为所有已添加面板基础的面板上,添加Resize
事件的处理程序
在OnResize()
添加:
private void SummaryData_Resize(object sender, EventArgs e)
{
foreach (MyPanel pan in this.Controls)
{
pan.Dock = DockStyle.Fill;
}
}
它对我有效。
我已经调试了代码,在OnResize
上,我的所有panels
似乎都丢失了Dock设置。