gpt4 book ai didi

c# - VS2017 C# 导入 WinForms 生成命名空间错误

转载 作者:行者123 更新时间:2023-12-04 17:05:48 25 4
gpt4 key购买 nike

我有两个解决方案,一个是功能性的,另一个是实验性的。我制作了一些表单和代码,我想从实验导入功能。

我按照指示找到 here导入表格。

  • 从实验文件夹
  • 添加现有文件(cs、designer 和 resx)
  • 从解决方案中排除它们
  • 从功能文件夹
  • 再次添加它们
  • 完成(有点)

  • 我遇到的是我需要更改 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()` 覆盖:

    enter image description here

    FWIW 你不需要编辑命名空间;您可以在新 namespace 的表单中使用旧 namespace 中的表单,只需在新 namespace 中的表单顶部添加“使用旧 namespace ”

    关于c# - VS2017 C# 导入 WinForms 生成命名空间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61462224/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com