我有一个应用程序已从 .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 属性会导致编译错误。
如何解决这个问题?
最佳答案
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/