繁体   English   中英

如何将 System.Windows.Forms 添加到我的 .NET 5.0 项目中?

[英]How do I add System.Windows.Forms to my .NET 5.0 project?

对于我缺乏术语和理解,我提前道歉,我对 .NET 和 Visual Studio 很陌生。

我在 Visual Studio Community 2019 版本 16.10.4 中的 Windows 7 64 位上使用 Visual Basic 为 .NET 5.0 制作控制台应用程序。

我正在尝试使用 Windows.Forms.Form 对象并弹出一个小窗口并要求用户从 ListBox 中选择一个项目。 但到目前为止,我还没有成功地将 System.Windows.Forms 添加到我的项目中。

我尝试了Imports System.Windows.Forms但给出了警告“在 Imports 'System.Windows.Forms' 中指定的命名空间或类型不包含任何公共成员或无法找到。”。

我去了项目->添加COM参考->“System_Windows_Forms”(2.0版)

该引用有一个警告:“无法为类型库 {215d64d2-031c-33c7-96e3-61794cd1ee61} 创建包装程序集。类型库“System_Windows_Forms”是从 CLR 程序集导出的,不能作为 CLR 程序集重新导入。 "

听说直接添加.dll可以解决这个问题,所以我删除了COM引用并进入项目->添加项目引用->浏览->“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System. Windows.Forms.dll"

当我搜索 Forms.dll 时,我发现了大约 10 个文件,所以我只选择了看起来最正确的一个。 之后,我可以在脚本中使用对象,Visual Studio 可以自动完成对象的属性和功能。 但是当我真正进入调试器并尝试运行脚本时,我得到了错误:

System.IO.FileNotFoundException
H结果=0x80070002
消息=无法加载文件或程序集“System.Drawing.Common,版本=0.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51”。 该系统找不到指定的文件。
源=System.Windows.Forms
堆栈跟踪:
在 System.Windows.Forms.Control..ctor(布尔 autoInstallSyncContext)
在 System.Windows.Forms.Control..ctor()
在 System.Windows.Forms.ListControl..ctor()
在 System.Windows.Forms.ListBox..ctor()
在 GetNovel.Program.DetermineNovel()

这是我的导致错误的子:

Sub DetermineNovel()
    Dim Novels As Object = {{"Moon's Labyrinth", "ML", True, 262, 362}, {"Keyboard Immortal", "KI", False, 254, 254}}

    Dim SelectBox As New Windows.Forms.ListBox
    Dim i As Long
    For i = LBound(Novels) To UBound(Novels)
        SelectBox.Items.Add(Novels(i, 0))
    Next i

    Dim NovelSelect As New Windows.Forms.Form
    NovelSelect.Controls.Add(SelectBox)
    NovelSelect.Text = "Select Novel:"

    NovelSelect.Show()
End Sub

手动编辑 .csproj 文件。 如图所示设置TargetFrameworkUseWindowsForms

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

  ...

编辑:更新到 .NET 6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM