首页 > 解决方案 > VS2017 WinForms Designer 在更改时创建第二个构造函数

问题描述

在一个新项目中,我创建了一个名为 FormMain 的表单(或任何其他表单,没关系)。这将创建 FormMain.cs 和 FormMain.Designer.cs。该程序在这一点上构建并启动得很好。

但是,当我在 GUI 设计器上进行任何更改(例如更改 Form 属性或从工具箱中添加 MenuStrip)时,我看到还创建了一个 FormMain.resx 和一个 FormMain1.Designer.cs。

然后,我得到一个错误

Error CS0111 Type 'FormMain' already defines a member called '.ctor' with the same parameter types

我意识到这是由于在部分 FormMain 类下创建了第二个构造函数,在新生成的FormMain1.Designer.cs中与中与FormMain.cs

如果我删除FormMain1.Designer.cs中的构造函数,则项目构建并运行良好。但是,如果我对表单进行进一步更改,构造函数会在FormMain1.Designer.cs中再次创建,并且错误会重复。我需要FormMain.cs中的构造函数并且不想删除它。

所以基本上,每次在 GUI 编辑器上进行更改时,如果不删除第二个构造函数,我就无法对表单进行更改。这是 Visual Studio 2017 (15.9.14) 中的错误吗?如果是,任何已知的修复?

标签: c#winformsconstructorvisual-studio-2017

解决方案


通过从 Visual Studio 中删除扩展的强类型资源生成器修复了该问题。这会阻止每次编辑表单时创建FormMain1.Designer.cs


推荐阅读