2010-02-09 119 views
5

我得从SplitContainer中派生的自定义类:自定义设计的控制

namespace Builder.Components 
{ 
    public partial class ProjectSidebar : SplitContainer 
    { 
     public ProjectSidebar() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

现在,当我点击右键并选择视图设计我想看到的SplitContainer和编辑,就像我会使用默认控件(在其中放置一个面板等)。 我看到的只是一条消息来添加控件并切换到代码视图

如何实现这一目标?

回答

9

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

MSDN为a lengthy section增加了对您的控件的设计时支持。它描述了从type convertersextender providersdesigner serializationdesigner customization的所有内容。

其他资源

This article on CodeProject包含有关创建设计师为定制控件的信息。还有一些有用的提示herethis other StackOverflow question

1

编写控件时,需要确保为其添加设计时间逻辑。

有关更多详细信息,请参阅this (.NET 1.0) article on MSDNHere是2003年的另一篇文章。

+0

谢谢,但我似乎无法找到如何以及哪些设计逻辑添加到这个特定的代码,以及如何完成在设计器中创建/填充我的控制... – MysticEarth 2010-02-09 13:56:04

3

只有Form和UserControl类具有允许您在设计时编辑其子控件的设计器。创建您自己的设计器为SplitContainer提供相同的行为并不是那么简单,主要原因是它的记录太差,难以调试。您需要使用Reflector研究框架代码才能正确使用它。

解决这个问题,把SplitContainer放在用户控件中。将其Dock属性设置为Fill。现在很容易。