在Designer模式下将子项添加到自定义控件

时间:2017-05-23 20:46:28

标签: c# .net winforms custom-controls

我已经看到this answer用于向自定义控件添加设计器支持。它适用于并包括添加子控件。除了在关闭设计师并再次打开它之后 - 那些孩子都不见了。

是否有某种方法可以获得在设计器中添加子控件的支持?也许在某种情况下,我们可以以某种方式处理"手动" (即通过我的代码)?

这不是UserControl。它是继承自Panel

的类

2 个答案:

答案 0 :(得分:0)

您需要隐藏或覆盖s属性并应用Controls

这将告诉表单设计者将该属性的内容保存到[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

答案 1 :(得分:0)

对于派生自Panel的类,设计器默认启用,您不需要做任何事情,因为面板的设计者是PanelDesigner,它源自{{1它来自ParentControlDesigner

  

ScrollableControlDeigner为设计者提供了一个基类   可以包含子控件的控件。除了方法   和ParentControlDesigner和...继承的功能   ControlDesigner个类ComponentDesigner启用了子级   要添加,删除,选择和排列的控件   在控制中,它的行为在设计时延伸。

您可以通过将ParentControlDesigner设置为控件的设计器来启用设计器。例如:

ParentControldesigner