открыть новый документ с помощью VSTO Add-In - DocumentOpened не срабатывает - PullRequest
0 голосов
/ 06 мая 2019

У меня есть надстройка для Microsoft Visio, которая должна закрыть активный документ и открыть другой документ в том же приложении. Оба работают без проблем, но обработчик DocumentOpened не распознает открытие нового файла (что прекрасно работает при открытии файла вручную).

Код:

Visio.Application Vis = Globals.ThisAddIn.Application;
Visio.Document Doc = Vis.ActiveDocument;
Visio.Document new_Doc;

Doc.Save();
Doc.Close();

new_Doc = Vis.Documents.Open(new_filename);

Кто-нибудь знает, почему надстройка не перехватывает событие и как исправить эту проблему?

Заранее спасибо!

1 Ответ

0 голосов
/ 07 мая 2019

Это то, что я придумал. Вы должны быть в состоянии запустить свой код с e_Application_DocumentOpened.

public partial class ThisAddIn
{
    public static Visio.Application e_application;

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        e_application = this.Application;
        e_application.DocumentOpened += new Visio.EApplication_DocumentOpenedEventHandler(e_Application_DocumentOpened);
    }

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
        e_application.DocumentOpened -= new Visio.EApplication_DocumentOpenedEventHandler(e_Application_DocumentOpened);
        e_application = null;
    }

    private void e_Application_DocumentOpened(Visio.IVDocument doc)
    {
        //whatever you need to do for this event
    }
}
...