2009-02-23 72 views
5

解決方案加載時,我的加載項如何檢測?我知道在DTE模型中必須有某個事件,但是我找不到它。當Visual Studio加載時,我的加載項加載,但它取決於正在打開的解決方案。我不想讓它成爲一個解決方案加載項,直到MS失去了對COM的噁心注意,因爲解決方案加載項必須是COM組件。解決方案加載時,加載項如何檢測?

回答

8

下面介紹如何對事件中使用C#處理登記:

_solutionEvents = _applicationObject.Events.SolutionEvents; 
_solutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(SolutionOpened); 
_solutionEvents.AfterClosing += new _dispSolutionEvents_AfterClosingEventHandler(SolutionClosed); 

還要注意的是,當用戶打開Visual Studio中的一個解決方案文件雙擊,你就不會得到解決開口的事件。你應該檢查_applicationObject.Solution在OnStartupComplete方法中是否不爲null,以正確處理這種情況。

0

MSDN的SolutionEvents類包括事件:

打開的:立即打開的溶液或項目之後發生。

0

你必須在DTE2類名爲Events特性,它提供了很多類型的事件,你需要什麼,你必須使用:

DTE2 _applicationObject 
_applicationObject.Events.SolutionEvents.Opened+=new _dispSolutionEvents_OpenedEventHandler(SolutionEvents_Opened); 
相關問題