我有两个解决方案,一个是功能性的,另一个是实验性的。 我做了一些表格和代码,我想把它们从实验型导入到功能型。
我遵循的方向是 此处 来导入表单。
我遇到的是,我需要修改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.Designer.cs中的类的命名空间,你会导致两个类都被称为 Form1
在你的项目中,在不同的命名空间中。命名空间中的 Form1 in the Designer file, that doesn't inherit from Form, cannot thus have a
Dispose()`来覆盖。
顺便说一下,你不需要编辑命名空间;只要在新命名空间的表单顶部加上 "using OldNamespace",就可以在新命名空间的表单中使用旧命名空间的表单。