You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的执行逻辑
        }
    }
    
  • 清理构建缓存

    1. 右键解决方案,选择「清理解决方案」
    2. 删除项目目录下的bin和obj文件夹
    3. 重新构建整个解决方案
    4. 关闭并重启Visual Studio后,再打开窗体设计器
  • 检查设计器类的访问权限
    确保你的设计器类是public修饰的,否则WinForms设计器无法加载该类。

内容的提问来源于stack exchange,提问作者ActiveS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:02:16