控件的自定义设计器

Mys*_*rth 7 c# designer custom-controls winforms

我有一个派生自SplitContainer的自定义类:

namespace Builder.Components
{
    public partial class ProjectSidebar : SplitContainer
    {
        public ProjectSidebar()
        {
            InitializeComponent();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我右键单击并选择View Designer时,我希望看到SplitContainer并对其进行编辑,就像我使用默认控件一样(在其中放置一个面板等).我看到的只是添加控件和切换到代码视图的消息.

怎么做到这一点?

Jef*_*tes 10

为了添加设计时功能,如附加操作(根据提供的方式称为动作列表和动词),或者拖动视觉元素(如标题或分割条),您需要实现一个自定义设计器(通常来自ControlDesigner)允许Windows窗体设计器了解如何在设计时与自定义控件进行交互.

MSDN有一个冗长的部分,为您的控件添加设计时支持.它描述了从类型转换器扩展器提供程序设计器序列化设计器定制的所有内容.

其他资源

CodeProject上的这篇文章包含有关为自定义控件创建设计器的信息.也有一些有用的技巧在这里和在这个其他的StackOverflow问题.