我有两个解决方案,一个是功能性的,另一个是实验性的。我制作了一些表单和代码,我想从实验导入功能。
我按照指示找到 here导入表格。
我遇到的是我需要更改 FormOne.Designer.cs 文件上的命名空间以匹配 Functional 解决方案的命名空间:
namespace WindowsFormsApp1
变成:
namespace ProjName
这样做并保存它后,它适用于 FormOne。
但对 FormTwo 和 FormThree 执行完全相同的过程(一次一个表单)失败。当我尝试构建或重建解决方案或项目时,我得到:
FormTwo.Dispose(bool): no suitable method found to override
我对 FormTwo 和 FormThree 都遇到了同样的错误。我复制/粘贴了命名空间行,以确保在输入时没有打错字。
最佳答案
表单使用 partial
结合 Form1
的类功能在您编辑的代码文件 ( Form1.cs
) 中使用 Form1
在设计者编辑的文件中 ( Form1.Designer.cs
)
设计器代码覆盖 Dispose()
,它可以覆盖的方法,因为 Form1
Form1.cs 中的类继承自 Form
,它有一个可覆盖的 Dispose()
. partial class Form1
在设计器文件中不继承任何东西(它不能继承 Form
也是因为这已经在 Form1.cs
中完成了;你不能继承两次)
如果更改 Form1
的命名空间在 Form1.cs 类中创建类,而忘记更改 Form1.Designer.cs 中类的命名空间,您将导致两个类都称为 Form1
在您的项目中,在不同的命名空间中。 Form1 in the Designer file, that doesn't inherit from Form, cannot thus have a
Dispose()` 覆盖:
FWIW 你不需要编辑命名空间;您可以在新 namespace 的表单中使用旧 namespace 中的表单,只需在新 namespace 中的表单顶部添加“使用旧 namespace ”
关于c# - VS2017 C# 导入 WinForms 生成命名空间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61462224/