VS2017 WinForms Designer 在更改时创建第二个构造函数

VS2017 WinForms Designer Creating second Constructor on change

在一个新项目中,我创建了一个名为 FormMain 的窗体(或任何其他窗体,这无关紧要)。这将创建 FormMain.cs 和 FormMain.Designer.cs。该程序此时可以正常构建和启动。

但是当我对 GUI Designer 进行任何更改时(例如更改表单 属性 或从工具箱中添加 MenuStrip),我看到还创建了一个 FormMain.resx 并随之创建了一个FormMain1.Designer.cs.

然后,我得到一个错误

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

我意识到这是由于在partial FormMainclass下创建了第二个构造函数,在新生成的FormMain1.Designer.csFormMain.cs 中的冲突。

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

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

通过从 Visual Studio 中删除 Extended Strongly Typed Resource Generator 解决了该问题。这会阻止每次编辑表单时创建 FormMain1.Designer.cs