C# 我如何才能撤销表单复制/粘贴的混乱局面?

C# 我如何才能撤销表单复制/粘贴的混乱局面?,c#,winforms,visual-studio,C#,Winforms,Visual Studio,假设我有一个项目 它有一种形式 我想继续开发Form1,但保留一份当前状态的副本。我想我可以尝试复制Form1,并将副本重命名为Form1_old,以便继续当前副本。但我做的是把Form1重新命名为Form1 因此,我将Form1重命名为Form1_old。当它问我是否要重命名所有引用时,我说是的。然后我得到了这个 然后我右键单击Form1_old,单击copy,然后右键单击project explorer中的项目并单击paste,我得到了这个 它看起来不对劲,因为Form1\u old\

假设我有一个项目

它有一种形式

我想继续开发Form1,但保留一份当前状态的副本。我想我可以尝试复制Form1,并将副本重命名为Form1_old,以便继续当前副本。但我做的是把Form1重新命名为Form1

因此,我将Form1重命名为Form1_old。当它问我是否要重命名所有引用时,我说是的。然后我得到了这个

然后我右键单击Form1_old,单击copy,然后右键单击project explorer中的项目并单击paste,我得到了这个

它看起来不对劲,因为Form1\u old\u副本下面有一个项目,上面写着Form1,它不会重命名

这很烦人,因为我想把form1_old重命名为form1,把我的form1_old_副本重命名为form1_old

因此,我将Form1_old重命名为Form1(由于字母顺序的关系,它会出现在上面)

然后我就遇到了类似的问题

我的Form1.cs下面有一个名为Form1_old的东西,所以没有重命名

我的Form1\u old\u copy.cs下面有一个叫做Form1的东西

因此,我所做的复制/粘贴和重命名已经把事情搞得一团糟

我想要的是Form1_old_copy.cs下的任何内容,以匹配该名称。。以及Form1下与该名称匹配的任何内容

在这个阶段,如果必须的话,我不介意删除表单,因为在这个阶段它们都是相同的。但这不会有帮助,因为目前这两种形式都有点腐败,因为它们下面的一个项目有不同的名称,我不希望这样

我的Form1.cs下面有一个名为Form1_old的东西,所以没有重命名

我无法解释为什么它没有被重命名,而是将
重新命名为Form1\u old
,只是

  • 双击打开代码
  • 将类名更改为您想要的任何名称,小灯泡就会出现,因此从中选择
    Rename
  • 这也将更改并重命名解决方案资源管理器中的项目

    我的Form1.cs下面有一个名为Form1_old的东西,所以没有重命名

    我无法解释为什么它没有被重命名,而是将
    重新命名为Form1\u old
    ,只是

  • 双击打开代码
  • 将类名更改为您想要的任何名称,小灯泡就会出现,因此从中选择
    Rename
  • 这也将更改并重命名解决方案资源管理器中的项目

  • 您可以使用一些版本控制工具,如github、svn等
  • 但如果要复制表单:
    • 复制并粘贴Form1,它将创建Form1复制表单
    • 转到Form1-Copy.cs并将类名和构造函数更改为Form1\u Old
    • 转到Form1-Copy.designer.cs,将类名更改为Form1\u Old
    • 将文件名Form1-Copy.cs更改为Form1\u Old.cs
  • 现在,您可以继续使用Form1进行开发

  • 您可以使用一些版本控制工具,如github、svn等
  • 但如果要复制表单:
    • 复制并粘贴Form1,它将创建Form1复制表单
    • 转到Form1-Copy.cs并将类名和构造函数更改为Form1\u Old
    • 转到Form1-Copy.designer.cs,将类名更改为Form1\u Old
    • 将文件名Form1-Copy.cs更改为Form1\u Old.cs

  • 现在,您可以继续使用Form1进行开发,如果您将
    Form1
    重命名为
    Form1\u old
    ,然后在
    Form1\u old-copy
    下获得
    Form1\u old-copy
    后将其复制,但如果您再次复制
    Form1\u old
    并粘贴,则会获得
    Form1\u old-copy(2)
    然后你会得到
    Form1\u old
    ,这很奇怪。相关-请看我的答案VS may duplicate Initialize()方法在主cs文件和设计器文件中,两者都是分部类,因此如果显示错误,那么可以查找该类,例如删除主文件中的一个。感谢共享链接。这对我帮助很大。另外,如果您将
    Form1
    重命名为
    Form1\u old
    ,然后在
    Form1\u old-copy
    下获得
    Form1\u old-copy
    后将其复制,但如果您再次复制
    Form1\u old
    并粘贴,则会得到
    Form1\u old-copy(2)
    然后你会得到
    Form1\u old
    ,这很奇怪。相关-请看我的答案VS may duplicate Initialize()方法在主cs文件和设计器文件中,两者都是分部类,因此如果显示错误,那么可以查找该类,例如删除主文件中的一个。感谢共享链接。这对我帮助很大。