VS2012设计者在继承其他表单后无法打开表单

时间:2012-12-28 21:14:41

标签: c# winforms visual-studio-2012 designer

我有一个基本表单BaseForm,我用它来保存设置。此表单中没有控件,它在设计器中作为空表单打开。但是,当我继承此表单时,设计器拒绝在设计器中打开新创建的表单(在Designer中没有按钮View)。可能是什么问题?感谢

2 个答案:

答案 0 :(得分:3)

问题在于.csproj文件。

每个表单都在文件中有一个签名,如

<Compile Include="Opers\MyForm.cs">
  <SubType>Form</SubType>
</Compile>

SubType元素表示这实际上是一个表单,在我的文件中由于某种原因删除了它。

答案 1 :(得分:2)

我强烈建议尽可能避免继承表单。对于保存设置,这肯定是可以避免的:让自己成为FormSettingsSaver类或类似的东西,并在加载/关闭等时将表单作为参数传递给它。 继承表单会让人头疼,而且MS并没有真正在WindowsForms和/或Designer中进行任何工作。

编辑:如果你想坚持继承表格,请在评论中查看rene的链接。检查DesignMode可以避免大多数设计器问题。您还可以尝试注释掉语句,直到找到罪魁祸首。构造函数中的所有代码和(我认为)OnLoad都是在Designer中显示表单时执行的,因此有一个好的起点。