Вызов метода надстройки C# непосредственно из действия формы

У меня есть следующая настройка: я написал надстройку для Visio 2010 с VSTO, и эта надстройка добавляет в пользовательский интерфейс еще одну ленту. Из этого пользовательского интерфейса можно открывать новые формы и делать кое-что интересное.

В старой версии инструмента, которую я переписал, можно было щелкнуть правой кнопкой мыши фигуру и открыть форму прямо из фигуры. Это было сделано путем добавления действия к фигуре, которая выглядела так:

=RUNADDON("VS2.EXE")

где VS2.exe был исполняемым файлом, который открывал другую форму (которая должна была находиться в пути поиска Visio).

Мой вопрос: есть ли простой способ вызвать метод в надстройке/ленте изнутри действия формы или нет? Что-то типа:

=RUNADDON("MyAddIn.MyMethod()")

Связанная информация, которую я нашел (но не ответил на этот вопрос), была

Спасибо за любой ответ или предложение.


person Alexander Pacha    schedule 02.08.2011    source источник


Ответы (1)


Если вы хотите вызвать действие в своей надстройке из таблицы свойств фигуры, вам нужно вызвать событие, используя одну из двух следующих функций:

QUEUEMARKEREVENT("My ContextString") См. https://msdn.microsoft.com/en-us/library/office/ff767955.aspx

RUNADDONWARGS("QueueMarkerEvent","My ContextString") См. https://msdn.microsoft.com/EN-US/library/office/ff768158.aspx

Первый более новый и сделан специально для этой цели. Ваша надстройка должна прослушивать Application.MarkerEvent, чтобы перехватывать возникшие события.

В Visio SDK есть примеры

person David Parker    schedule 12.02.2016
comment
Спасибо за ответ, хотя он мне уже не нужен. Я приму непроверенный ответ для будущих посетителей (поскольку я твердо верю, что это работает). - person Alexander Pacha; 13.02.2016