通过DTE在VS Extension中添加菜单项不会触发Click处理程序 [英] Adding menu item in VS Extension through DTE doesn't fire Click handler

查看:96
本文介绍了通过DTE在VS Extension中添加菜单项不会触发Click处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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.

这是我使用的代码:

 

  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;

推荐答案

您是否对事件对象有很强的引用?否则我相信可以将其GC化.

Are you holding a strong reference to the events object? Otherwise it can be GCed I believe.

Ryan


这篇关于通过DTE在VS Extension中添加菜单项不会触发Click处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆