通过DTE在VS Extension中添加菜单项不会触发Click处理程序 [英] Adding menu item in VS Extension through DTE doesn't fire Click handler
问题描述
Hello.
我试图用VS Package(扩展名)中的菜单项动态填充解决方案"右键单击菜单.
I am trying to dynamically fill the Solution right click menu with menu items from VS Package (Extension).
我有一个扩展菜单,名称为"MyMenuName".而且我要在其中添加菜单项.
I have a extension menu with name "MyMenuName" and I am adding menu items there.
这是我使用的代码:
您是否对事件对象有很强的引用?否则我相信可以将其GC化. Are you holding a strong reference to the events object? Otherwise it can be GCed I believe. Ryan 这篇关于通过DTE在VS Extension中添加菜单项不会触发Click处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! 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;
推荐答案