[英]Designer process terminated in Custom Control with Binding Content
[英]Custom Designer for a Control
我有一个派生自SplitContainer的自定义类:
namespace Builder.Components
{
public partial class ProjectSidebar : SplitContainer
{
public ProjectSidebar()
{
InitializeComponent();
}
}
}
现在,当我右键单击并选择View Designer时,我希望看到SplitContainer并对其进行编辑,就像我使用默认控件一样(在其中放置一个面板等)。 我看到的只是添加控件和切换到代码视图的消息 。
怎么做到这一点?
为了添加设计时功能,如附加操作(根据提供的方式称为动作列表和动词),或拖动视觉元素(如标题或拆分条),您需要实现自定义设计器(通常从ControlDesigner
派生)这允许Windows窗体设计器了解如何在设计时与自定义控件进行交互。
MSDN有一个冗长的部分 ,为您的控件添加设计时支持。 它描述了从类型转换器到扩展器提供程序和设计器序列化到设计器定制的所有内容 。
其他资源
CodeProject上的这篇文章包含有关为自定义控件创建设计器的信息。 也有一些有用的技巧在这里和在这个其他的StackOverflow问题 。
只有Form和UserControl类具有允许您在设计时编辑其子控件的设计器。 创建自己的设计器以使SplitContainer具有相同的行为并不是非常简单,最重要的是因为它的文档记录很差且难以调试。 您需要使用Reflector学习框架代码才能使其正确。
解决这个问题,将SplitContainer放在用户控件中。 将其Dock属性设置为Fill。 现在很容易。
编写控件时,需要确保为其添加设计时逻辑。
有关更多详细信息,请参阅MSDN上的此(.NET 1.0)文章 。 这是2003年的另一篇文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.