0

我正在尝试建立一个具有“主”或“模板”窗体(在 Visual Studio Express c# 中)的基本系统,该窗体具有一些基本按钮和属性,然后添加从该窗体继承并扩展其的新窗体功能。我的确切实现在这里并不重要,因为我希望将这种东西用于大量项目。

MSDN 和我能找到的每个来源都告诉我从解决方案资源管理器中添加一个新的继承表单,但是继承表单模板没有出现在菜单中,我的朋友是完整的 Visual Studio 2010 也找不到它。我尝试了所有可以在网上找到的命令行命令来安装模板:devenv /installvstemplates、vcsexpress /setup vcsexpress /installvstemplates 等。但它们似乎没有任何效果,没有给出错误或确认,但模板仍然丢失。

认为我已经通过遵循以下建议并确保从构造函数调用 base() 并从继承形式的构造函数显式调用 InitializeComponent() 解决了这个问题 - 所述函数不是虚拟的似乎很奇怪,但我'肯定是有原因的。

我怎样才能得到这个模板?有人可以导出给我吗?是不支持还是什么?

如果继承的表单不是要走的路,我如何创建相互继承的表单并能够在设计器中编辑它们,而不会在构建时撤消所有更改?

4

2 回答 2

4

您需要做的就是设计您希望继承的表单,然后当您创建一个新的空白表单时,将代码隐藏中的继承从Form更改为您的表单名称。

因此,双击您的表单以获取后面的代码,在顶部查找类似的内容:

public partial class MyForm : Form

并将其更改为:

public partial class Myform : BaseForm

只是为了证明这是可行的,下面是一个屏幕截图:

截屏

于 2013-08-08T10:55:27.860 回答
3

只需首先创建一个普通表单并将其命名为例如 BaseForm。随心所欲地设计它并添加所有标准功能。

然后当你想创建一个新的时,只需从 BaseForm 而不是 Form 派生它。

public partial class BaseForm : Form {
  // example property
  protected string Test { get; set; }
}

public partial class MyInheritedForm : BaseForm {

  // now the inherited form has also access to previously declared protected prop
}

您正在谈论的模板实际上并没有通过向导对话框执行此特定继承

于 2013-08-08T10:55:01.687 回答