自定义嵌套容器控件

时间:2010-07-19 14:09:03

标签: c# winforms custom-controls components containers

我正在编写一个自定义控件,它由嵌套在普通FlowLayoutPanel中的Panel组成。 FlowLayoutPanel是类的内部属性,设计者无法查看(与Tab不同,后者具有公开的各个属性。)设计者添加到{{{}的任何控件1}}应该添加到Panel。这是我到目前为止所做的:

FlowLayoutPanel

这适用于在运行时添加的控件,但是当我尝试在设计时添加控件时,它会显示public class SlidePanel : Panel { private FlowLayoutPanel _panel; public SlidePanel() : base() { _panel = new FlowLayoutPanel(); Controls.Add(_panel); _panel.Location = new Point(0, 0); _panel.Size = base.Size; _panel.Anchor = AnchorStyles.Bottom | AnchorStyles.Top; ControlAdded += new ControlEventHandler(SlidePanel_ControlAdded); } void SlidePanel_ControlAdded(object sender, ControlEventArgs e) { Controls.Remove(e.Control); _panel.Controls.Add(e.Control); } } 或者将控件添加到窗体中。我假设有一种更清洁,更好的方法来实现这个目标吗?


Flynn1179's suggestion的测试:

'child' is not a child control of this parent.

1 个答案:

答案 0 :(得分:0)

您是否考虑过SlidePanel直接从FlowLayoutPanel继承,而不是包含一个?