如何在WinC#窗体中创建控件的覆盖部分?

如何在WinC#窗体中创建控件的覆盖部分?,c#,winforms,overlay,C#,Winforms,Overlay,我需要创建一个自定义控件,它有一个可扩展部分作为面板和一个文本框部分。可展开部分是一个面板,可以是可见的,也可以是不可见的。但是,当面板直接在文本框下可见/展开时,我不希望相邻控件向下移动到面板下方,但面板应仅覆盖位于自定义控件下方的控件。我将如何在Winforms C#项目中实现这一点? 我愿意在这个场景中使用用户控制 谢谢 Sunil我认为您的展开和折叠实现不是最好的,因为您只是覆盖了控件,而不是隐藏它们。 缺点之一是,重叠控件可能会通过按tab键聚焦,并且它们可能有一个我认为超出目标的值

我需要创建一个自定义控件,它有一个可扩展部分作为面板和一个文本框部分。可展开部分是一个面板,可以是可见的,也可以是不可见的。但是,当面板直接在文本框下可见/展开时,我不希望相邻控件向下移动到面板下方,但面板应仅覆盖位于自定义控件下方的控件。我将如何在Winforms C#项目中实现这一点? 我愿意在这个场景中使用用户控制

谢谢
Sunil

我认为您的展开和折叠实现不是最好的,因为您只是覆盖了控件,而不是隐藏它们。 缺点之一是,重叠控件可能会通过按tab键聚焦,并且它们可能有一个我认为超出目标的值


我建议通过创建两个面板(一个用于标题,另一个用于内容)来实现另一个实现当按下折叠按钮时,内容面板将被隐藏,方法是将其
Visible
属性设置为
false
,将其
Hight
设置为
0

控件没有理由向下移动。这通常需要一个布局控件,如TableLayoutPanel或FlowLayoutPanel。不清楚你为什么认为他们会搬家。是否重叠取决于Z顺序,只需将控件移到前面即可。唯一的其他细节是,您必须将UserControl变大,以使面板可见。只需更改大小属性。其实也不需要面板。