通过DTE在VS Extension中添加菜单项不会触发点击处理程序

|| 我正在尝试使用VS软件包(扩展名)中的菜单项动态填充“解决方案”右键单击菜单。 我有一个扩展菜单,名称为\“ MyMenuName \”,并且在其中添加菜单项。 这是我使用的代码:
        DTE2 dte = GetService(typeof (DTE)) as DTE2;

        CommandBars cmdBars = dte.CommandBars as CommandBars;

        CommandBar owner = cmdBars[\"MyMenuName\"];

        CommandBarControl ctl1 = owner.Controls.Add(
            MsoControlType.msoControlButton, 1, string.Empty, 1, true);
        ctl1.Caption = \"caption\";
        ctl1.Enabled = true;

        //register on the Click event of the
        //button menu item
        CommandBarEvents buttonMenuItemHandler = (CommandBarEvents)dte.DTE.Events.CommandBarEvents[ctl1];

        buttonMenuItemHandler.Click += buttonMenuItemHandler_Click;
菜单项已成功添加,但单击处理程序从未执行。有任何想法吗? 编辑:我在这里挖了一些代码:https://netrepo.svn.codeplex.com/svn/trunk/AssemblyFactoryAddin/AssemblyFactoryAddin/GUIButton.cs 而且看来我的代码应该是正确的(假设他们的代码有效)     
已邀请:
与其使用
CommandBarControl
,不如使用
CommandBarButton
。例如。:
var button = (CommandBarButton)owner.Controls.Add(MsoControlType.msoControlButton);
button.Caption = \"caption\";
button.Enabled = true;
button.Click += OnButtonClick;`
这样可以解决问题。     

要回复问题请先登录注册