C# WinForms Designer中找不到类型的VS2017构造函数
我试图创建一个从表单继承的表单。基类称为C# WinForms Designer中找不到类型的VS2017构造函数,c#,winforms,inheritance,constructor,C#,Winforms,Inheritance,Constructor,我试图创建一个从表单继承的表单。基类称为Window,它继承自MetroForm,这是我下载并安装在项目中的NuGet包。此表单在设计器中加载时不会出现问题 public partial class Window : MetroForm { public WindowType windowType { get; } public Engine engine { get; } public Window(WindowType windowType, Engine engi
Window
,它继承自MetroForm
,这是我下载并安装在项目中的NuGet包。此表单在设计器中加载时不会出现问题
public partial class Window : MetroForm
{
public WindowType windowType { get; }
public Engine engine { get; }
public Window(WindowType windowType, Engine engine)
{
InitializeComponent();
this.windowType = windowType;
this.engine = engine;
}
}
子窗体的声明和构造如下:
public partial class GraphicsWindow : Window
{
public GraphicsWindow(WindowType windowType, Engine engine) : base(windowType, engine)
{
InitializeComponent();
}
}
它在设计器窗口中引发以下错误:
“找不到类型为'DispatcherDesk.Windows.Window'的构造函数。”
我发现有多个线程在完全相同的情况下解决了这个错误,但没有一个解决方案适合我。我尝试向父窗体和子窗体添加无参数构造函数,添加InitializeComponent()
调用它们,并使用[过时]
属性和私有
访问修饰符。我还尝试了重建解决方案,并在每个步骤重新启动VisualStudio
目前我所能想到的是,这些解决方案在VS2017中不再有效,但我不知道为什么。提前感谢您的回答 基类必须具有默认构造函数才能在设计器中使用。这仅仅是因为设计者无法确定需要传递哪些参数。因此,您必须添加
公共窗口()
。如有必要,在DesignMode属性中添加检查,以发现表单正在设计中(如果可能需要放弃运行时功能)。不幸的是,我尝试了该解决方案,但仍然没有成功。