是否可以从继承正常表单的自定义表单继承

时间:2017-07-24 19:16:29

标签: c# winforms inheritance

我在过去几个小时里一直试图解决一个我不明白错误的问题。我正在为需要多种形式的项目构建GUI系统,这些形式几乎相同,但并不完全相同。我想我有一个类(如下所示)继承了标准的,普通的形式。

class GUIWindow : Form, IGUIWindow
{
    public GUIWindow() : base()
    {

    }

    public GUIWindow(string name) : base()
    {
        this.Name = name;
    }
}

和继承第一个类的第二个类(下面),因此我对基类做的任何更改都会影响所有子类,并且会有四个左右的子类。

class GUIWindowText : GUIWindow, IGUIWindow
{

    public GUIWindowText() : base() { }

    public GUIWindowText(string name) : base()
    {
        this.Name = name;
    }
}

但如果我在视觉工作室(2017)看到设计师,我会收到这个错误:

Constructor on type 'LCARS.GUIWindow' not found.

即使我提供了一个空的构造函数。所以我一定会错过一些明显的东西,但我不知道是什么。

修改

它编译得很好。我无法看到设计师

1 个答案:

答案 0 :(得分:0)

让Visual Studio创建继承的表单:在项目中右键单击解决方案资源管理器以打开上下文菜单,添加>新商品>继承表单(在Windows窗体部分中),然后单击“添加”。这将打开一个向导,要求您提供基本表单,选择GUIWindow并单击“确定”。 VS然后正确设置派生形式。

注意:如果您想更改派生表单中现有基本表单的控件(例如更改其大小或移动它们),则必须将其可访问性从private更改为protected