c# - .NET core 3.1 中未找到 MenuItem 和 ContextMenuItem

标签 c# winforms .net-core

我有一个应用程序已从 .NET Core 3.0 升级到 .NET Core 3.1。执行此操作后,由于缺少对 MenuItem 和 ContextMenuItem(来自 Winforms System.Windows.Forms 命名空间)的引用,我的应用程序不再编译。

我已经尝试过:

  • 重新启动 Visual Studio
  • 清理/重建
  • 关闭 Visual Studio 并删除 bin 和 obj 文件夹
  • 将错误显示更改为仅构建以避免可能出现的 IntelliSense 错误

不幸的是,错误仍然存​​在。额外令人费解的是,其他WinForms对象被引用并且不会导致编译错误,例如System.Windows.Forms.PropertyGrid。下面的屏幕截图显示 PropertyGrid 已成功引用,但访问其 ContextMenu 属性会导致编译错误。

enter image description here

如何解决这个问题?

最佳答案

ContextMenu以及其他一些控件在 .NET Core 3.1 及更高版本中不可用。这些控件(包括 MainMenu、ContextMenu、Toolbar、DataGrid)首先从工具箱中删除,并且这些类型在 .NET Core 3 之前可用。后来,从 .NET Core 3.1 开始,这些类型也被删除。

您需要升级应用程序并使用替换的控件(MenuStrip、ContextMenuStrip、ToolStrip、DataGridView)。

您可以在此处详细了解 .NET Core 3.1 中的重大更改和删除的控件:

关于c# - .NET core 3.1 中未找到 MenuItem 和 ContextMenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71632269/

相关文章:

c# - 选择后重置组合框中的文本

c# - 如何从 WPF 用户控件获取托管 WinForm 的实例?

visual-studio - 无法启动IIS Express Web服务器-VS 2015社区

c# - 插入后计算的主键不会在 EF Core 实体中更新

linux - 为什么在发布 .net 核心应用程序后我找不到 View

C# MVC - Razor 复杂嵌套表单提交不具有约束力

javascript - 在 TextChanged 或 CheckedChanged 事件上使用 JavaScript 清除两个 TextBox 和 checkBox

c# - 在 MVC 中发送远程属性的参数

c# - 客户端断开连接时检测并写入

c# - 如果我的 C# 程序中没有任何按键,如何进入登录表单?