Visual Studio 2010 добавить - события не вызваны - PullRequest
4 голосов
/ 01 марта 2011

Я написал дополнение, которое принимает активный документ в качестве параметра. Поэтому каждый раз, когда активный документ изменяется, мне нужно знать. Для этого я хотел использовать событие «Events.DocumentEvents.DocumentOpened» объекта DTE2. Но проблема в том, что событие никогда не запускается, даже если я изменяю активный документ.

Фрагмент кода выглядит следующим образом

        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, но безуспешно. Есть идеи?

1 Ответ

3 голосов
/ 03 марта 2011

Я только что понял, что сфокусировался на неправильном событии, и поэтому оно не было запущено.С кодом ниже я получил то, что хотел.Поэтому вместо 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...