Visual Studio 2022中.Net 6自定义控件Designer Verb设计时不显示
.NET 6 WinForms自定义控件Designer Verb不显示的解决方法
问题背景
使用Visual Studio 2022 + .NET 6开发WinForms应用,按照微软官方文档步骤为自定义控件添加Designer Verb后,控件能正常出现在工具箱并添加到窗体,但右键点击控件时看不到预期的Verb菜单。
核心代码片段:
m_Verbs = new DesignerVerbCollection(); m_Verbs.Add( new DesignerVerb("First Designer Verb", new EventHandler(OnFirstItemSelected)) ); m_Verbs.Add( new DesignerVerb("Second Designer Verb", new EventHandler(OnSecondItemSelected)) );
排查及修复步骤
确认控件与设计器的关联
必须在自定义控件类上添加DesignerAttribute,明确指定对应的设计器类。示例:[Designer(typeof(CustomControlDesigner))] public class MyCustomControl : Control { // 控件实现代码 }设计器类需正确重写Verbs属性
设计器类要继承自ControlDesigner,并且必须重写Verbs属性来返回你的DesignerVerbCollection实例,不能仅在构造函数中初始化集合。完整示例:public class CustomControlDesigner : ControlDesigner { private DesignerVerbCollection _verbs; public override DesignerVerbCollection Verbs { get { if (_verbs == null) { _verbs = new DesignerVerbCollection(); _verbs.Add(new DesignerVerb("First Designer Verb", OnFirstVerbClicked)); _verbs.Add(new DesignerVerb("Second Designer Verb", OnSecondVerbClicked)); } return _verbs; } } private void OnFirstVerbClicked(object sender, EventArgs e) { // 第一个Verb的执行逻辑 } private void OnSecondVerbClicked(object sender, EventArgs e) { // 第二个Verb的执行逻辑 } }清理构建缓存
- 右键解决方案,选择「清理解决方案」
- 删除项目目录下的
bin和obj文件夹 - 重新构建整个解决方案
- 关闭并重启Visual Studio后,再打开窗体设计器
检查设计器类的访问权限
确保你的设计器类是public修饰的,否则WinForms设计器无法加载该类。
内容的提问来源于stack exchange,提问作者ActiveS
相关产品推荐
相关产品推荐

