如何在设计时公开复合控件内的子控件

 

使用UserControl制作一个复合控件,有时内部一个子控件很多属性、方法和事件都要和外部交互,如果要在UserControl重新公开这些接口将是一个工作量很大的事情,我们可以考虑直接向外公开这个子控件,就是在UserControl提供一个公有的属性可以直接访问到这个子控件,如果我们要做到设计时的控制,(就像Panel内的控件可以直接拖放的效果一样),我们就得使用自己的设计器Designer。通过Designer定制属性加载自己的设计器。

如:

Code

 
     如果单单想公开一个或多个子控件,自己的设计器可以从ControlDesigner派生;在公司子控件的同时又想把这个UserControl作为一个容器,可以从ParentControlDesigner派生。

通过重写Initialize()方法,使用EnableDesignMode方法公开子控件。

示例:

LawCaseDesigner

   

原文地址:https://www.cnblogs.com/Yjianyong/p/1540676.html