C# 如何为继承的用户控件使用设计器?
我尝试将设计器用于继承的用户控件,但不幸没有成功 我的问题是,我不能像预期的那样设计C# 如何为继承的用户控件使用设计器?,c#,visual-studio-2010,windows-forms-designer,C#,Visual Studio 2010,Windows Forms Designer,我尝试将设计器用于继承的用户控件,但不幸没有成功 我的问题是,我不能像预期的那样设计模板。当AbstractWizardElement是从表单派生出来的,但即使是UserControl,它也能完美地工作。如果我用设计器打开我的ConcreteWizardTemplate,我可以从工具箱中添加组件,尽管我无法设计或设置它们的样式 #if DEBUG public class AbstractWizardElement : UserControl { ..
模板。当AbstractWizardElement
是从表单
派生出来的,但即使是UserControl
,它也能完美地工作。如果我用设计器打开我的ConcreteWizardTemplate
,我可以从工具箱中添加组件,尽管我无法设计或设置它们的样式
#if DEBUG
public class AbstractWizardElement : UserControl
{
..
}
#else
public abstract class AbstractWizardElement : UserControl
{
..
}
#endif
有一个编译器开关,当调试模式打开时,它将AbstractWizardElement
定义为一个普通类
如何像对待从表单继承的元素那样设计模板
我的环境是Visual Studio 2010和C#.net 4.0。Visual Studio有一个有趣的怪癖,它没有在设计器中运行派生类/控件的构造函数。我经常通过创建从原始控件继承的另一个控件(在本例中,例如ConcreteWizardTemplateShim:ConcreteWizardTemplate)来修复此问题,然后在设计器中设计该控件。这对您有用吗?基类是否标记为抽象类?因为如果是这种情况,设计器将无法创建该控件的实例。谢谢您的评论@dash。我有另一个控件,它继承了ConcreteWizardTemplate
。不幸的是,我不能“风格”他们太@Spontifixus:是的,当我不在调试模式下运行解决方案时。当它处于调试模式时,有一个编译器开关将它定义为一个普通类。也许你知道所有这些,但我不得不问:ConcreteWizardTemplate
及其基类是否都有一个无参数构造函数?