首页 新闻 搜索 专区 学院

vs add-in 弹出菜单无法触发事件?

0
悬赏园豆:50 [已关闭问题] 关闭于 2012-09-13 17:27

 右键菜单可以弹出,但无法触发事件

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject
= (DTE2)application;
_addInInstance
= (AddIn)addInInst;

if(connectMode == ext_ConnectMode.ext_cm_UISetup)
{
...
          ...
   try
{
......
            
            //添加自定义菜单栏
                    CommandBar CodeWinCommandBar = ((CommandBars)_applicationObject.CommandBars)["Code Window"];
                    CommandBarPopup MyPopupMenuBar = (CommandBarPopup)CodeWinCommandBar.Controls.Add(MsoControlType.msoControlPopupSystem.Reflection.Missing.ValueSystem.Reflection.Missing.Value, 1, true);
                    MyPopupMenuBar.Caption = "自定义菜单栏";
                    //添加自定义菜单项
                    CommandBarButton MyPopupMenuItem = MyPopupMenuBar.Controls.Add(MsoControlType.msoControlButtonSystem.Reflection.Missing.ValueSystem.Reflection.Missing.Value, 1, trueas CommandBarButton;
                    MyPopupMenuItem.Caption = "我的菜单项";
                    //为菜单项订阅单击事件
                    var MyPopupMenuItemEvents = _applicationObject.Events.get_CommandBarEvents(MyPopupMenuItemas CommandBarEvents;
                    MyPopupMenuItemEvents.Click += new _dispCommandBarControlEvents_ClickEventHandler(MyPopupMenuItem_Click
            );
          
          }
        catch(System.ArgumentException)
          {
          }
  }
}
private void MyPopupMenuItem_Click(object CommandBarControlref bool Handledref bool CancelDefault)
        {
            MessageBox.Show("I am being Clicked!");
        }

 

空明流光的主页 空明流光 | 初学一级 | 园豆:62
提问于:2011-01-25 15:10
< >
分享
所有回答(1)
0

test

yzx99 | 园豆:137 (初学一级) | 2013-09-13 01:42

和我一样,后面找到原因:

“开始时,把menuItemHandler定义局部变量,点击BuildTest菜单项时,有时不执行MenuItem_Click方法,有时第一次点击时执行,但再点击就不执行。
后来把menuItemHandler定义为类的成员变量才解决问题,具体原因目前还不清楚。”

支持(0) 反对(0) yzx99 | 园豆:137 (初学一级) | 2013-09-13 01:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册