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

时间:2014-07-10 23:32:51

标签: c# winforms class dll

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

我试过了:

using System.Windows.Forms;

但该名称空间无法识别。

感谢您的投入。

6 个答案:

答案 0 :(得分:7)

我觉得最适合我的是创建一个新的Windows窗体项目,然后转到项目属性并将其更改为类库。这样,您可以右键单击解决方案资源管理器中的文件夹,所有WinForms项目就像它仍然是WinForms项目一样,但它是一个类库。这也适用于WPF应用程序。

答案 1 :(得分:7)

您绝对可以在类库中使用Windows窗体。几种情况:

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

  2. 您正在从其他项目复制表单。在这种情况下,Visual Studio将无法识别表单并将其显示为简单的C#源文件。在这种情况下,右键单击Visual Studio中项目下的引用。单击Add References并从左侧窗格中选择Framework。选择System.Windows.FormSystem.Drawing,然后点击确定。这应该使Visual Studio可以理解该表单,您可以设计它使用表单设计器进行编辑。

  3. 如果要使用代码创建表单,请按步骤2中所述添加对所需程序集的引用。您应该能够在项目中使用System.Windows.Form语句using System.Windows.Form;

答案 2 :(得分:4)

是的,你可以。您需要在类库项目中添加对System.Windows.Forms的引用(右键单击项目 - > Add - > Reference)

答案 3 :(得分:0)

您可以手动编辑项目文件以包含 Windows 窗体:

右键单击项目文件-->“编辑项目文件”,然后在<PropertyGroup>标签下添加"<UseWindowsForms>true</UseWindowsForms>"

<PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>    
</PropertyGroup>

答案 4 :(得分:0)

现在是 2021 年 7 月 29 日,我正在使用 VS2019 和 net5。

新建项目时,有一个名为“Windows Form Class Library”的模板,其依赖项中默认为App.WindowsForm。

上帝和微软员工听到了我们的祈祷。

答案 5 :(得分:-1)

如果新窗体已经在必须保持窗口的Windows项目中 应用..

尝试这些步骤,不确定这是否是你想要的......希望它有所帮助。

  1. 创建新的Dll项目
  2. 复制Form.cs,FormDesigner.cs和form.resx 进入新的dll项目文件夹
  3. 添加现有