C# 船坞式控制

C# 船坞式控制,c#,winforms,user-controls,C#,Winforms,User Controls,我有一个用户控件,上面有两个按钮,下面有一个网格。让我把它命名为UC1 此UC1放置在另一个用户控件UC2内 在UC2的某些情况下,我不需要UC1上的2个按钮,因此我将这2个按钮设置为可见false,并将网格的停靠样式设置为填充 grid.Dock = DockStyle.Fill; 但在某些情况下,我需要UC1上的2个按钮,我将2个按钮设置为可见,然后将网格的dock样式设置为None grid.Dock = DockStyle.None; 将DockStyle设置为“无”后,栅格的宽度将

我有一个用户控件,上面有两个按钮,下面有一个网格。让我把它命名为UC1

此UC1放置在另一个用户控件UC2内

在UC2的某些情况下,我不需要UC1上的2个按钮,因此我将这2个按钮设置为可见false,并将网格的停靠样式设置为填充

grid.Dock = DockStyle.Fill;
但在某些情况下,我需要UC1上的2个按钮,我将2个按钮设置为可见,然后将网格的dock样式设置为None

grid.Dock = DockStyle.None;
将DockStyle设置为“无”后,栅格的宽度将变小,并且不适合UC2的宽度

若我不使用DockStyle.None,那个么网格和按钮就会重叠


如何解析UC1中网格的宽度以适应UC2的宽度?

您应该首先在CU1上放置一个TableLayoutPanel,将其设置为Fill

然后在此表中,为a面板创建一行以容纳两个按钮,并为第二行以容纳CU2。然后可以将额外面板和CU2全部设置为填充


要显示或隐藏按钮,只需将面板行的行高设置为适当的值或零。

尝试
grid.Dock=DockStyle.Bottom
I尝试DockStyle.Bottom,网格适合UC2控件的底部。这导致按钮和网格之间出现巨大的空白。所以我不能同意这个解决方案,谢谢你的建议,但是UC1的设计不应该被触动,因为它在大多数屏幕上都被使用。还有其他解决办法吗?