对VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick的事件处理程序的引用不起作用 [英] Reference to event handlers for VsUIHierarchyWindowCmdIds.UIHWCMDID_DoubleClick does not work
本文介绍了对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屋!
查看全文