我有一个派生自SplitContainer的自定义类:
namespace Builder.Components
{
public partial class ProjectSidebar : SplitContainer
{
public ProjectSidebar()
{
InitializeComponent();
}
}
}
现在,当我右键单击并选择 View Designer 时,我希望看到SplitContainer并对其进行编辑,就像我使用默认控件一样(在其中放置一个面板等)。 我看到的只是添加控件并切换到代码视图的消息。
如何实现这一目标?
答案 0 :(得分:9)
为了添加设计时功能,如附加操作(根据提供的方式称为动作列表和动词),或者拖动视觉元素(如标题或拆分条),您需要实现自定义设计器(通常派生)来自ControlDesigner
),允许Windows窗体设计师了解如何在设计时与自定义控件进行交互。
MSDN为您的控件添加了设计时支持a lengthy section。它描述了从type converters到extender providers和designer serialization到designer customization的所有内容。
其他资源
This article on CodeProject包含有关为自定义控件创建设计器的信息。还有一些有用的提示here和this other StackOverflow question。
答案 1 :(得分:3)
只有Form和UserControl类具有允许您在设计时编辑其子控件的设计器。创建自己的设计器以使SplitContainer具有相同的行为并不是非常简单,最重要的是因为它的文档记录很差且难以调试。您需要使用Reflector学习框架代码以使其正确。
解决这个问题,将SplitContainer放在用户控件中。将其Dock属性设置为Fill。现在很容易。
答案 2 :(得分:1)
编写控件时,需要确保为其添加设计时逻辑。
有关详细信息,请参阅this (.NET 1.0) article on MSDN。 Here是2003年的另一篇文章。