1

マクロを使用してソリューションをロードするときに、開いているコード ウィンドウ (つまり、ドキュメントを編集するウィンドウ) を列挙する方法は?

おそらくご存じのとおり、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
4

1 に答える 1

1

ウィンドウを列挙するために私が見つけた 1 つの方法は、DocumentEvents.DocumentOpened イベントにありますが、ソリューションの読み込み中だけでなく、常に発生します。私の経験では、 SolutionEvents.Opened がまったく起動されないようです。それ以外の場合は、静的変数が変更される可能性があります。

これはそれを説明するのに役立つかもしれません。

于 2008-09-17T06:29:41.870 に答える