【发布时间】:2009-08-18 09:53:27
【问题描述】:
如果我向我的 Visual Studio 2005 宏 EnvironmentEvents 模块添加一个 WindowEvents_WindowActivated 处理程序,我会得到一个奇怪的副作用:当我在 Visual Studio 中从一个窗口单击到另一个窗口时,该单击被视为双击.
例如,我将焦点放在编辑器窗口中,然后在解决方案资源管理器中单击一个文件,该文件就会打开。
或者我将焦点放在工具箱中并在编辑器窗口中单击,然后我单击的单词被选中。在大多数情况下,当单击导致窗口激活时,该单击被视为双击。
即使事件处理程序为空,也会发生这种情况:
Private Sub WindowEvents_WindowActivated(ByVal GotFocus As EnvDTE.Window, _
ByVal LostFocus As EnvDTE.Window) _
Handles WindowEvents.WindowActivated
' Do nothing.
End Sub
我想使用WindowActivated 事件来做一些很酷的事情,但这是一个杀手锏。有没有人见过这个并解决它? (我知道我可以使用计时器并轮询当前窗口,但是很糟糕。)
【问题讨论】:
-
当您从另一个窗口单击数据集设计器时,会发生同样令人讨厌的行为。你进入数据库代码隐藏。
-
事件处理程序是否也被调用了两次?
-
@Steven:处理程序只被调用一次,但请参阅我对 AMissico 答案的评论。
标签: vb.net visual-studio visual-studio-2005 macros visual-studio-macros