Visual Studio自动化:枚举解决方案加载时打开的窗口

时间:2020-03-05 18:51:13  来源:igfitidea点击:

在使用宏加载解决方案时,如何枚举打开的代码窗口(即,用于编辑文档的窗口)?

我们可能知道,MSVS会记住打开的文档,即,当我们加载解决方案时,IDE会加载以前打开的文件。我要做的是在加载解决方案时对这些窗口执行一些操作。

我试图在SolutionEvents_Opened处理程序中访问这些窗口。但是,很幸运,在调用SolutionEvents_Opened时,上述窗口似乎不可用。 DTE.Documents为空,DTE.Windows.Items不包含它们。

我需要一些代码,例如:

Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
   Dim window As Window = DTE.Documents.Item(?).Windows // one of the opened windows
   ...
End Sub

解决方案

回答

我发现枚举窗口的一种方法是在DocumentEvents.DocumentOpened事件上,但是它总是触发它,而不仅是在加载解决方案的过程中。根据我的经验,SolutionEvents.Opened似乎不会被解雇,否则可以在其中更改静态变量。

不过,这可能会有助于解释它。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。