对VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick的事件处理程序的引用不起作用 [英] Reference to event handlers for VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick does not work

查看:72
本文介绍了对VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick的事件处理程序的引用不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在VS2008插件中编写了以下代码


I have written the following code in my VS2008 addin

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

   DTE dte = sp.GetService(typeof(DTE)) as DTE;
   private CommandEvents commandEvents

   if (dte != null) {
      commandEvents = dte.Events.get_CommandEvents(typeof(Microsoft.VisualStudio.VSConstants.VsUIHierarchyWindowCmdIds).GUID, 
                                           (int)Microsoft.VisualStudio.VSConstants.VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick) as CommandEvents;
      
      commandEvents.BeforeExecute += new _dispCommandEvents_BeforeExecuteEventHandler(OnBeforeExecute);
   } 
}

代码执行正常没有任何问题,但当我双击VS 解决方案资源管理器中的项目时,执行控件没有来到我的OnBeforeExecute方法。

我尝试使用相同的代码来执行Open( Microsoft.VisualStudio。 VSConstants VSStd97CmdID 。打开)并且工作正常。你能告诉我什么是错的吗?

问候
ShahinBasheer

The code executes fine without any problem, but when I double click on an item in VS Solution explorer, the execution control does not come to my OnBeforeExecute method.

I tried this same code for commands like Open (Microsoft.VisualStudio.VSConstants.VSStd97CmdID.Open) and it works fine. Can you please let me know what is wrong?

Regards
ShahinBasheer

推荐答案

嗨ShahinBasheer,

我根据你的代码进行了测试,我们可以从你的代码中获得双击的GUID和CmdID,但我认为我们不能通过dte获得双击事件.Events.get_CommandEvents函数。根据我的理解,双击事件应该作用于某些控件或Windows。

如果你想捕获双击事件,你可以捕获VSConstants.VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick消息,请看这个帖子,也许它会有所帮助:
一个双击时禁用扩展HierarchyNode

如果我误解了您,或者您有任何疑问,请让我知道。

最诚挚的问候,
南希
Hi ShahinBasheer,

I have taken a test based on your code, we can get GUID and CmdID of double click from your code, but I think we can't get double click event by dte.Events.get_CommandEvents function. Based on my understanding, double click event should be acting on some controls or Windows.

If you want to capture double click event,you can capture VSConstants.VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick message, please see this thread, maybe it will helps:

Disabling expanding a HierarchyNode while double clicking

If I misunderstood you, or you have any questions, please let me know.

Best Regards,
Nancy


这篇关于对VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick的事件处理程序的引用不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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