C# 是否可以在C类库中创建Windows窗体?

C# 是否可以在C类库中创建Windows窗体?,c#,winforms,class,dll,C#,Winforms,Class,Dll,我一直在用C构建DLL类库,用作提供自定义API的应用程序的附加组件。到目前为止,它们主要包括与数据库、计算、磁盘操作等的接口。我很想知道我是否可以在DLL类库中构建和显示Windows窗体,显示文本框、按钮等等 我试过: using System.Windows.Forms; 但该名称空间未被识别 感谢您的输入。如果新表单已经在必须保留Windows的Windows项目中 应用程序 尝试以下步骤不确定这是否是您想要的。。。希望能有帮助 创建新的Dll项目 复制Form.cs、FormDesi

我一直在用C构建DLL类库,用作提供自定义API的应用程序的附加组件。到目前为止,它们主要包括与数据库、计算、磁盘操作等的接口。我很想知道我是否可以在DLL类库中构建和显示Windows窗体,显示文本框、按钮等等

我试过:

using System.Windows.Forms;
但该名称空间未被识别


感谢您的输入。

如果新表单已经在必须保留Windows的Windows项目中 应用程序

尝试以下步骤不确定这是否是您想要的。。。希望能有帮助

创建新的Dll项目 复制Form.cs、FormDesigner.cs和Form.resx 进入新的dll项目文件夹 添加现有的
是的,你可以。您需要在类库项目中添加对System.Windows.Forms的引用右键单击project->add->reference

我发现最适合我的方法是创建一个新的Windows Forms项目,然后转到项目属性并将其更改为类库。通过这种方式,您可以右键单击解决方案资源管理器中的文件夹,所有WinForms项目都会显示,就好像它仍然是WinForms项目,但它是一个类库一样。这也适用于WPF应用程序

您完全可以在类库中使用Windows窗体。有几个场景:

您正在使用FormDesigner将表单添加到库中。您可以在项目名称上单击鼠标右键,然后在Windows窗体中单击“添加”。它应该为您的表单添加必需的引用

您正在从其他项目复制表单。在这种情况下,VisualStudio将无法识别表单,并将其显示为简单的C源文件。在本例中,右键单击Visual Studio中项目下的引用。单击添加引用并从左窗格中选择框架。选择System.Windows.Form和System.Drawing,然后单击“确定”。这将使VisualStudio能够理解表单,您可以使用表单设计器对其进行设计和编辑

如果您使用代码创建表单,请按照步骤2中所述添加对所需程序集的引用。通过使用System.Windows.Form,您应该能够在项目中使用System.Windows.Form;陈述
您可以手动编辑项目文件以包括windows窗体:

右键单击项目文件->编辑项目文件,然后在标记下添加true


我只是右键单击类库>添加>新建项>窗口窗体,没有问题。我遗漏了什么吗?除了uses子句之外,还将引用与forms项目的引用进行比较!这是一个“a”解决方案,但并不方便。相反,我将创建一个Windows窗体应用程序项目,并将输出类型更改为类库。这将有助于添加所需的引用并使用它们。从classlib的项目中删除Program.cs,jict这个答案非常好。太棒了。这将节省很多人的时间和金钱。请鞠躬,先生。使用Visual Studio 2019,我注意到现在有一个Windows窗体类库模板可用,这应该可以节省一些时间。
<PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>    
</PropertyGroup>