Visio Addin Где / Когда зарегистрировать WindowTurnedToPage - PullRequest
0 голосов
/ 29 сентября 2019

Я разрабатываю C # VSTO Visio Addin.В надстройке я хочу обнаружить и запустить обработчик события переворачивания страницы, когда пользователь выбирает другую страницу в данном документе.Я видел следующий поток, касающийся регистрации события:

Поймать событие WindowTurnedToPage в проекте Visio AddIn

Копирование этой логики Я попробовал следующее в ThisAddIn.cs:

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        Application.ActiveWindow.WindowTurnedToPage += new Visio.EWindow_WindowTurnedToPageEventHandler( Window_WindowTurnedToPage);
    }

     public void Window_WindowTurnedToPage(Visio.Window Window)
    {
        Debug.WriteLine(String.Format("Window changed to {0}", Window.Application.ActivePage.Name ));
    }

Однако, когда я пытаюсь зарегистрировать обработчик событий как часть в вызове ThisAddin_Startup, я получаю NPE, потому что «ActiveWindow» не было установлено.Похоже, что существует проблема синхронизации между регистрацией обработчика события и регистрируемым Document / ActivePage.

Итак, я хочу, чтобы мой Visio Adddin обнаруживал и отвечал на пользовательское событие, когда активная страница в загруженном документе изменяется.

Любая помощь будет принята с благодарностью.

Спасибо и всего наилучшего, Андрей

...