我有一个控件,在该控件中有一个其他控件的集合(有点像选项卡控件,但不是选项卡控件)。
所以我可以控制一张表格。我可以使用自定义集合设计器窗体添加新的子控件,没有问题。
我希望能够在窗体视图中以设计模式向子控件添加控件。目前,如果选择子控件并删除say复选框,则复选框将添加到父控件(而不是子控件)中,然后位于所有子控件的顶部。
如何使在子控件上删除的控件实际上被添加到子控件中,而不是在设计模式中添加其父控件?它是一个需要添加到某些东西上的属性吗?我是否必须在其中添加一些自定义代码来捕获正在添加的控件?
发布于 2016-10-07 20:51:58
首先,使内部控件设计器能够像父控件那样运行:
[Designer(typeof(ParentControlDesigner))]
public partial class InnerControl : UserControl然后,在外部控件中托管时启用内部控件的设计模式,方法是为外部控件创建一个新的控件设计器:
[Designer(typeof(OuterControlDesigner))]
public partial class OuterControl : UserControl
{
public OuterControl()
{
InitializeComponent();
}
public InnerControl InnerControl { get { return innerControl1; } }
}
public class OuterControlDesigner:ControlDesigner
{
public override void Initialize(IComponent component)
{
base.Initialize(component);
this.EnableDesignMode(((OuterControl)this.Control).InnerControl, "InnerControl");
}
}https://stackoverflow.com/questions/39925165
复制相似问题