C# 在单独的项目中使用表单

C# 在单独的项目中使用表单,c#,winforms,visual-studio-2015,C#,Winforms,Visual Studio 2015,是否有人能够成功地使用VS2015在一个项目中创建的表单 我已经创建了很多表单,我通常需要将它们包含在我的大多数项目中,但是每当我尝试将它们添加到新项目中时,我似乎永远无法让它们工作 我想将它们添加到一个单独的项目中,使用它们的代码和设计器/图像引用等,但我只成功地添加了表单,没有代码资源或设计器 相反,我目前不得不在新项目中手动重新创建相同的表单,并复制、粘贴和重置所有控件和标签,以及更新的解决方案中没有的内容 在过去,我经常像这个家伙那样做:但它似乎不适用于VS2015 当然有一个简单的方法

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

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

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

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

在过去,我经常像这个家伙那样做:但它似乎不适用于VS2015

当然有一个简单的方法可以做到这一点?我的方法是可行的,但它非常耗时,我认为没有必要


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

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

使用分布式库:

创建类库.dll 添加对System.Windows.Forms的引用 定义任何要在此处重复使用的代码、表单和资源。 编译库并检索.dll文件。 将.dll文件复制到新项目中并添加对它的引用。 使用表单。 这基本上就是nuget包管理器的工作方式,只是它负责管理物理.dll文件和自动添加引用。如果您将是此应用程序的唯一使用者,并且不打算将源代码签入源代码管理服务器git、tfs、svn等,那么您也可以将此dll仅存储在文档文件夹等的单个位置,以便更轻松地进行更新


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

哇,我终于解决了这个问题

要将另一个项目的现有表单添加到当前表单,请执行以下操作:

在解决方案资源管理器中的项目属性上单击鼠标右键。 单击添加。 单击现有项目。 仅浏览Form1.cs并选择它,然后单击“确定”。 右键单击添加的Form1.cs并选择查看代码。 查看顶部的名称空间,突出显示实际的名称空间,例如:名称空间Form1,因此突出显示Form1。 右键单击突出显示的名称空间,然后选择重命名。。。。 此时会出现一个框,勾选“包含注释”、“包含字符串”,然后在“重命名”框仍然可见的情况下键入新名称,然后单击“确定”。 现在只需将资源文件添加到当前项目中。
是否有人能够成功地使用VS2015在一个项目中创建的表单?是。这种事经常发生。是的,很简单。如果您自己的尝试需要帮助,您需要提供详细信息。包括一个很好的演示,清楚地展示你尝试了什么,并详细解释发生了什么,以及这与你想要发生的有什么不同。@PeterDuniho感谢你的回答,对不起,我认为这是一个非常直截了当的问题,我在Youtube视频上添加了一个链接,介绍了一个家伙是如何做到的,我还说我过去也使用过同样的方法,我认为这是一个很好的例子?我不明白你为什么否决我?这是一个合理而准确的问题。我补充了我过去是如何为你做这件事的。请阅读以更好地理解你如何以清晰、负责的方式提出你的问题。请务必阅读文章,该页底部提供了链接。我在这里找到的所有东西都不能解决我的问题。这就是我问这个问题的原因,如果你有解决方案,请务必给我一个。这里的答案是我过去常做的:stackoverflow.com/questions/863582/…但它似乎并没有保持设计者的视觉效果,它没有像默认表单那样的控件进行重置,也没有添加资源,我想添加表单,而不是项目,添加现有项目很容易,但我只需要表单。2015年是否不再存在添加为链接?2013年它仍然存在。就像您要添加到项目和现有项一样。。。。浏览到另一个项目,注意“添加”按钮旁边的向下箭头。单击该箭头,然后选择添加为链接。-我想这就是你所指的。顺便说一句,我在2008年左右停止使用该功能,结果并没有达到预期的效果,但它确实保留了经过编译的表单代码,并允许表单的重用。我的快速谷歌搜索让我怀疑这是否是vs2015中的项目类型弃用,而不是所有项目类型都受到影响。非常
有趣的是,为info@caesayth欢呼这似乎是错误的-我希望链接引用与以前版本的Visual Studio中的一样。以上是一种从一个项目到另一个项目共享代码的非常糟糕的方式。通过使用Add,VisualStudio只需将.cs文件从一个项目复制到另一个项目。您也可以选择整个内容并复制/粘贴。如果您在文件中发现一个bug,或者以后想添加功能,那么您必须在这两个地方都执行此操作。只有稍微好一点的方法是使用addlink,它引用新项目中的原始.cs文件。但这仍然需要在每个项目中编译该文件。共享代码的最佳方式是通过DLL,根据其他发布的答案和其他相关答案。