2009-02-23 77 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); 
相关问题