2013-05-13 59 views

回答

2

从命令本身无法确定它是如何被触发的。你也不能从CommandEvent获得这些信息。这是设计的原因,因为命令可以绑定到任意数量的触发器(包括某些代码中的显式调用)。

但是,您可以执行的操作是将自己注册为树DTE.CommandBars.Controls中的所有CommandBarButton.OnClick和CommandBarComboBox.OnChange上的侦听器。每当发生上述事件之一时,捕获下一个CommandEvent。这是由相应的CommandBarControl立即触发的命令。

我想这对于你描述的场景已经足够了。但是,请注意,由于命令可以隐式触发(通过其他命令),因此您无法从中推断出所有其他命令都由某个快捷方式触发。你可以通过检查一个键是否被按下,当一个命令发生时来估计这个值,但这是一个相当脆弱的方法......如果有人知道这里更好的方法,欢迎加入!

相关问题