【问题标题】:Is it possible to create a Windows Form in a C# Class Library?是否可以在 C# 类库中创建 Windows 窗体?
【发布时间】:2021-07-29 16:39:40
【问题描述】:

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

我试过了:

using System.Windows.Forms;

但该命名空间无法识别。

感谢您的意见。

【问题讨论】:

  • 我只是右键单击类库>添加>新项目>窗口窗体没有问题。我错过了什么吗?
  • 除了uses子句之外,还将引用与表单项目的引用进行比较!

标签: c# winforms class dll


【解决方案1】:

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

【讨论】:

  • 并从 classlib 的项目 JIC 中删除 Program.cs
  • 这个答案很棒。简直太棒了。它将为很多人节省时间和金钱。鞠躬,先生。
  • 使用 Visual Studio 2019,我注意到现在有一​​个 Windows Forms Class Library 模板可用,应该可以节省一些时间。
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        【解决方案5】:

        现在是 2021-7-29,我正在使用 VS2019 和 net5。

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

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

        【讨论】:

          【解决方案6】:

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

          尝试这些步骤,不确定这是否是您想要的……希望对您有所帮助。

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

          【讨论】:

          • 这是“一个”解决方案,但不方便。相反,我会创建一个 Windows 窗体应用程序项目并将输出类型更改为类库。这将有助于添加所需的引用并使用它们。
          猜你喜欢
          • 1970-01-01
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-27
          • 2011-01-21
          相关资源
          最近更新 更多