2011-03-01 4 views
4

활성 문서를 매개 변수로 사용하는 추가 기능을 작성했습니다. 그래서 활성 문서가 바뀔 때마다 나는 알아야합니다. 그렇게하기 위해 DTE2 객체의 "Events.DocumentEvents.DocumentOpened"이벤트를 사용하려고했습니다. 하지만 문제는 활성 문서를 변경하더라도 이벤트가 실행되지 않는다는 것입니다.Visual Studio 2010 추가 기능 - 트리거되지 않은 이벤트

 public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) 
    { 
     _applicationObject = (DTE2)application; 

     _applicationObject.Events.DocumentEvents.DocumentOpened += new _dispDocumentEvents_DocumentOpenedEventHandler(DocumentEvents_DocumentOpened); 

     ... 
    } 

     void DocumentEvents_DocumentOpened(Document Document) 
    { 
     MessageBox.Show("Not called"); 
    } 
나뿐만 아니라 DocumentEvents으로 시도

하지만 성공을 다음과 같이

코드 조각입니다. 어떤 아이디어?

답변

3

내가 방금 잘못된 이벤트에 집중하고 있다는 사실을 깨달았습니다. 해고되지 않은 이유입니다. 아래 코드를 통해 내가 의도 한 바를 얻었습니다. 그래서 DocumentEvents 대신 WindowEvents를 사용해야했습니다.

  ....    

    _applicationObject.Events.WindowEvents.WindowActivated += new _dispWindowEvents_WindowActivatedEventHandler(WindowEvents_WindowActivated); 

    } 

    void WindowEvents_WindowActivated(Window GotFocus, Window LostFocus) 
    { 
     if (ucCAST != null && GotFocus.Document != null) 
      ((CAST)ucCAST).refreshCode(GotFocus.Document.Name); 
    } 
+0

대답은 대답으로 표시하십시오. –

관련 문제