在单独的项目中使用表单

时间:2017-03-21 01:06:19

标签: c# winforms visual-studio-2015

是否有人成功地使用VS2015在另一个项目中创建的表单?

我已经创建了许多我通常需要包含在我的大多数项目中的表单,但每当我尝试将它们添加到新项目时,我似乎永远无法让它们工作。

我想将它们添加到一个单独的项目中,包括它们的代码和设计器/图像引用等,但我只是成功地添加了没有资源或设计者代码的表单。

相反,我目前不得不在新项目中手动重新创建相同的表单,并复制和粘贴并重置所有控件和标签以及新解决方案中没有的内容。

在过去,我曾经像这样做过:https://www.youtube.com/watch?v=FPBMoibAmU0但它似乎不适用于VS2015?

当然有一种简单的方法可以做到这一点?我的方式有效,但这非常耗时,我觉得没必要。

那么我以前做过的事情:将form1.Designer.cs,form1.cs复制到新的解决方案目录中,然后在新的解决方案中,右键单击项目属性,添加现有文件并浏览并选择这两个文件并单击“确定”。

2 个答案:

答案 0 :(得分:2)

是的,人们一直在重复使用代码,这个问题来自于对代码和项目如何工作的基本误解。应该在共享项目或共享/分布式库中创建要共享的代码。

使用分布式库:

  • 创建一个类库(.dll)
  • 添加对System.Windows.Forms
  • 的引用
  • 定义要在此处重复使用的任何代码,表单和资源。
  • 编译库并检索.dll文件。
  • .dll文件复制到新项目中并添加对它的引用。
  • 使用表格。

这基本上是nuget包管理器的工作方式,除了它处理物理.dll文件的管理和自动添加引用。如果你是唯一的消费者并且你不打算将你的源代码检查到源控制服务器(git,tfs,svn等),那么你也可以只将这个dll存储在一个位置(你的文件夹等)所以更新它更容易。

如果您希望能够在使用该表单的所有项目中更改原始源代码,则可以通过右键单击解决方案,单击“添加现有”,将原始共享库项目添加到新的VS解决方案中项目,并导航到您的图书馆项目的csproj文件。

答案 1 :(得分:-1)

哇我终于解决了,

将另一个项目的现有表格添加到当前:

  1. 右键单击“解决方案资源管理器”中的“项目属性”。
  2. 点击“添加”。
  3. 点击“现有项目”。
  4. 仅浏览“Form1.cs”并选择它,单击“确定”。
  5. 右键单击添加的“Form1.cs”并选择“查看代码”。
  6. 查看“命名空间”的顶部,突出显示实际命名空间,例如:“命名空间Form1”,因此请突出显示“Form1”。
  7. 右键单击突出显示的命名空间,然后选择“重命名...”。
  8. 出现一个框,勾选“包含注释”,“包含字符串”,然后键入新名称(仍然显示重命名框)并单击“确定”。
  9. 现在只需将资源文件添加到当前项目中。