调整面板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();

我不知道如何让新添加的控件正确调整大小,我也尝试过使用顶部、底部、左侧和右侧的锚点,但都没有用。任何帮助都将不胜感激,谢谢。

调整面板C#中嵌入的用户控件的大小

添加以下内容将使用父控件大小调整用户控件的大小。

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设置。