.NET 9 WinForms中找不到System.Drawing.Design.UITypeEditor的问题
在.NET 9 WinForms中找回UITypeEditor的解决方案
你遇到的问题是因为.NET Core/.NET 5+(包括.NET 9)将System.Drawing.Design.UITypeEditor这类设计时组件从默认的WinForms SDK中拆分出来,放到了独立的NuGet包中。解决步骤如下:
安装必要的NuGet包:在你的.NET 9 WinForms项目中,安装
System.Design包。可以通过NuGet包管理器搜索安装,或者在项目文件中添加以下引用:<PackageReference Include="System.Design" Version="9.0.0" />注意版本号要和你的.NET 9版本匹配。
确认命名空间引用:安装完成后,你原来的代码不需要修改命名空间,
System.Drawing.Design.UITypeEditor依然在这个命名空间下,直接引用即可。
你的原有代码在安装包后就能正常编译运行:
public class FileSelectorTypeEditor : System.Drawing.Design.UITypeEditor { public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { if (context == null || context.Instance == null) return base.GetEditStyle(context); return UITypeEditorEditStyle.Modal; } // 其他逻辑代码 }
简单来说,就是.NET跨平台重构后把这类设计时工具单独打包了,补装对应的NuGet包就能解决找不到类型的问题。
内容的提问来源于stack exchange,提问作者ZedZip
相关产品推荐
相关产品推荐

