如何在 win 表单中为用户控件设置响应宽度

how to set responsive width for user control in win forms

我正在开发一个 windows 表单应用程序,我有一个父表单,我通过它调用用户控件,问题是当父表单最大化时,用户控件显示良好

但是当我最小化父表单时,我发现用户控件的一部分被隐藏了。

尽管我在面板内显示了用户控件并将此面板的停靠栏设置为填充。

并且我使用以下代码来显示面板内的用户控件:

        xUc.Dock = DockStyle.Fill;
        this.PnlView.Controls.Clear();
        this.PnlView.Controls.Add(xUc);
        xUc.BringToFront();

更新1: 我在用户控件中使用了 TableLayoutPanel,我遇到了同样的问题:

最小化形式:

最大化形式:

屏幕截图表明这两个面板不是由同一父级托管的。您可以通过检查 PnlView.Controls 集合中的内容或检查左右面板的 Parent 属性 来验证这一点。所以,xUc.Dock = DockStyle.Fill; 没有给你预期的停靠布局,它填充了 PnlView.

free space

要获得预期的布局,请确保由同一父级托管两个面板,如果这不是一个选项(例如,右侧面板是某种 浮动 面板)然后处理相关事件(即 Parent.SizeChangedRightPanel.VisibleChanged...等)以设置左侧面板的边界(主要是宽度)。