获取用户控件以填充其容器

Sim*_*gan 2 c# size user-controls winforms

我创建了一个用户控件,其中包含标签和进度条。我还创建了另一个用户控件,其中仅包含一个流布局面板,其流向设置为自上而下。当我将前者添加到后者的流布局面板中时,我希望它使用可用的最大水平空间和最小的垂直空间,以便遵循标签和进度条的默认高度。有没有办法做到这一点?

我上传了屏幕截图,以帮助说明问题。包含标签和进度条的用户控件为红色,而包含流布局面板的用户控件为绿色。

Ehz*_*Ehz 5

我认为问题是因为您实际上不希望控件“流动”,而只是希望它们占用宿主控件中的最高位置。您只需使用常规的Panel控件即可获得所需的结果。只需将子用户控件添加到容器控件的Controls集合中,然后将添加的用户控件的Dock设置为“ Top”即可。

        ChildDisplay dsp1 = new ChildDisplay();
        pnlHost.Controls.Add(dsp1);
        dsp1.Dock = DockStyle.Top;

        ChildDisplay dsp2 = new ChildDisplay();
        pnlHost.Controls.Add(dsp2);
        dsp2.Dock = DockStyle.Top;

        ChildDisplay dsp3 = new ChildDisplay();
        pnlHost.Controls.Add(dsp3);
        dsp3.Dock = DockStyle.Top;
Run Code Online (Sandbox Code Playgroud)

注意:将[ChildDisplay]替换为您使用的UserControl的名称。