C#复制,将表单粘贴到Visual Studio项目中

时间:2010-02-11 21:28:01

标签: c# winforms visual-studio-2005 resources

我想创建一个几乎与我项目中已有的对话框重复的新表单。如果我不需要,我不想浪费时间重新创建大部分表格。

我复制,然后将其粘贴到我的项目中,并将其从Copy of Original。cs重命名为NewItem.cs

当我转到重建我的解决方案时,我收到错误

The item "obj\Debug\Control.Forms.NewUser.resources" was specified more
than once in the "Resources" parameter.  
Duplicate items are not supported by the "Resources" parameter.

我做错了什么?有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:3)

您可能将一些本地资源存储在名为Original.resx的文件中

复制对话框时,它复制了这个文件,但没有重命名(虽然不应该这样)。查看解决方案资源管理器中的Copy Of Original.cs下面是否有.resx文件。如果是这样的话也重命名。

无论如何都可能值得执行Clean(右键单击Project或Solution)以清除obj和bin文件夹,然后尝试重新编译。

答案 1 :(得分:2)

老问题,但我会回答未来的googlers,因为OP声称接受的答案没有解决问题。

问题是NewItem.cs仍然包含一个与Original.cs同名的类。当文件名和类名不同时会发生这种情况(与Eclipse for Java不同,Visual Studio允许在C#项目中使用)。复制粘贴将“Copy of”前缀附加到文件名,并且重命名文件功能不够智能,无法确定在这种情况下重命名该类是合适的。

要修复错误,必须重命名重复项目项中的类。我说项目而不是文件,因为在WinForms的情况下,这意味着两个文件:一个解决方案资源管理器默认显示(右键单击 - >显示代码或F7如果受到视觉设计师的欢迎)和.designer.cs 。无需修改.resx AFAIK。

答案 2 :(得分:0)

创建原始表单的副本时,VS不会更改原始名称空间(在您的情况下,它仍然是“原始”)。因此,只需将此重复的命名空间(在“原始文件”中)更改为独特的东西。