Winforms 在VS2010内创建表单副本后恢复WinForm设计

Winforms 在VS2010内创建表单副本后恢复WinForm设计,winforms,visual-studio-2010,Winforms,Visual Studio 2010,表单包含主设计并在该表单的代码文件中包含所有代码。我只是复制了该表单,并将其粘贴到VisualStudio的解决方案资源管理器中原始表单所在的同一目录中。它现在显示与资源相关的错误。当我前进时,它显示错误: 错误MSB3105:在resources参数中多次指定了项obj\x86\Debug\BAS.frmGI1.resources 现在我失去了主窗体的设计。如何恢复原始表单的设计?您可以制作表单的副本,但必须更改其名称(文件名和对象名),以免与原始表单混淆。然后,在VisualStudio中,

表单包含主设计并在该表单的代码文件中包含所有代码。我只是复制了该表单,并将其粘贴到VisualStudio的解决方案资源管理器中原始表单所在的同一目录中。它现在显示与资源相关的错误。当我前进时,它显示错误:

错误MSB3105:在resources参数中多次指定了项obj\x86\Debug\BAS.frmGI1.resources


现在我失去了主窗体的设计。如何恢复原始表单的设计?

您可以制作表单的副本,但必须更改其名称(文件名和对象名),以免与原始表单混淆。然后,在VisualStudio中,您将添加表单。。。现有的。。。然后选择新表单

您的错误消息提到了obj目录,因此错误可能发生在构建过程中。我会查看您的项目的资源,看看哪些内容可能已经被复制,如果它超出了您复制的原始文件


如果您丢失了原始源代码,则可能无法恢复。我希望您正在使用某种形式的源代码管理VSS、TFS等,或者至少要经常复制到备份的网络磁盘上?

您可以复制一个表单,但必须更改其名称(文件名和对象名),以免与原始表单混淆。然后,在VisualStudio中,您将添加表单。。。现有的。。。然后选择新表单

您的错误消息提到了obj目录,因此错误可能发生在构建过程中。我会查看您的项目的资源,看看哪些内容可能已经被复制,如果它超出了您复制的原始文件

如果您丢失了原始源代码,则可能无法恢复。我希望您正在使用某种形式的源代码管理VSS、TFS等,或者至少正在频繁地复制到备份的网络磁盘上?

由于您复制了原始表单,所有类、设计器代码等都被复制到了完全相同的位置。与任何其他类一样,如果有两个定义了完全相同名称的类;他们会发生冲突。类似地,如果您有一个分部类的两个文件,并且在这两个文件中声明了一个具有相同名称的变量;这将产生冲突

你所做的是导致上面的冲突发生在设计师身上…没有必要惊慌失措或求助于版本控制或诸如此类的东西-没有双关语的意图

接下来,让我们修复这些类名

只需在副本上单击鼠标右键,然后单击

浏览你的网页

使用您喜爱的文本编辑器打开FormName.Designer.vb或FormName.Designer.cs for C,但不要打开!使用visualstudio

在本例中查找表单的类MySuperAwesomeForm:

Partial Class MySuperAwesomeForm
在C中:

用其他名称替换MySuperAwesomeForm的所有实例;示例:mysuperawesomeform2

现在,再次使用您喜爱的文本编辑器打开FormName.vb或FormName.cs for C,确保它不是!Visual Studio

用步骤4中使用的相同值替换MySuperAwesomeForm的所有实例;示例:mysuperawesomeform2

如果两个文件仍处于打开状态,请保存并关闭它们。 从技术上讲,您应该只需要在每个文件的前几行中的一行(该行以Public Class、partial Class或Public partial Class开头)将MySuperAwesomeForm替换为MySuperAwesomeFormTwo

最后,回到Visual Studio,回到项目中。

由于您复制了原始表单,所有类、设计器代码等都被完全复制了。与任何其他类一样,如果有两个定义了完全相同名称的类;他们会发生冲突。类似地,如果您有一个分部类的两个文件,并且在这两个文件中声明了一个具有相同名称的变量;这将产生冲突

你所做的是导致上面的冲突发生在设计师身上…没有必要惊慌失措或求助于版本控制或诸如此类的东西-没有双关语的意图

接下来,让我们修复这些类名

只需在副本上单击鼠标右键,然后单击

浏览你的网页

使用您喜爱的文本编辑器打开FormName.Designer.vb或FormName.Designer.cs for C,但不要打开!使用visualstudio

在本例中查找表单的类MySuperAwesomeForm:

Partial Class MySuperAwesomeForm
在C中:

用其他名称替换MySuperAwesomeForm的所有实例;示例:mysuperawesomeform2

现在,再次使用您喜爱的文本编辑器打开FormName.vb或FormName.cs for C,确保它不是!Visual Studio

用步骤4中使用的相同值替换MySuperAwesomeForm的所有实例;示例:mysuperawesomeform2

如果两个文件仍处于打开状态,请保存并关闭它们。 从技术上讲,您应该只需要在每个文件的前几行中的一行(该行以Public Class、partial Class或Public partial cla开头)将MySuperAwesomeForm替换为MySuperAwesomeFormTwo 党卫军


最后,返回Visual Studio,返回项目。

它打开Microsoft.VisualBasic.targets文件并在不同的行上显示错误。它打开Microsoft.VisualBasic.targets文件并在不同的行上显示错误。