winforms 在.NET Core 3.1中找不到MenuItem和ContextMenuItem

1rhkuytd  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(157)

我有一个应用程序,我已经从.NET Core 3.0升级到.NET Core 3.1。这样做之后,由于缺少对MenuItem和ContextMenuItem(来自WinformsSystem.Windows.Forms命名空间)的引用,我的应用程序不再编译。
我试过:

  • 正在重新启动Visual Studio
  • 清洁/重建
  • 关闭Visual Studio并删除bin和obj文件夹
  • 将我的错误显示更改为Build only以避免可能的智能感知错误

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

我该如何解决这个问题?

cnjp1d6j

cnjp1d6j1#

ContextMenu沿着一些其他控件在.NET Core 3.1及更高版本中不可用。这些控件(包括MainMenu、ContextMenu、DataGrid和DataGrid)最初是从Toolbox中删除的,这些类型直到.NET Core 3才可用。后来,这些类型也从.NET Core 3.1开始删除。
您需要升级您的应用程序并使用替换的控件(MenuStrip、ContextMenuStrip、ToolStrip、DataGridView)。
你可以在这里阅读更多关于.NET Core 3.1中的破坏性更改和删除控件的信息:

  • .NET Core 3.1中的重大更改-删除控件

相关问题