2011-08-02 66 views
1

我有以下設置:我使用VSTO爲Visio 2010編寫了一個加載項,此加載項將另一個功能區添加到UI中。從這個用戶界面,可以打開新的表格並做一些很酷的事情。直接從形狀調用中調用C#插件方法

隨着我重寫的工具的老版本,可以右鍵單擊形狀並直接從形狀打開表單。這樣做,加入到看起來像形狀的動作:

=RUNADDON("VS2.EXE") 

其中VS2.exe是打開的另一種形式(這必須是在Visio中的搜索路徑)的可執行文件。

我的問題是,如果有一種簡單的方法從形狀動作內部調用加載項/功能區中的方法?喜歡的東西:

=RUNADDON("MyAddIn.MyMethod()") 

我發現(但沒有回答這個問題)相關信息是

感謝您的回覆或建議。

回答

2

如果你想打電話給你的外接從ShapeSheet中的動作,那麼你需要使用任一下列兩種功能引發一個事件:

QUEUEMARKEREVENT(「我的ContextString」) 見https://msdn.microsoft.com/en-us/library/office/ff767955.aspx

RUNADDONWARGS( 「QueueMarkerEvent」, 「我ContextString」) 見https://msdn.microsoft.com/EN-US/library/office/ff768158.aspx

第一個是較新的和專門爲此目的而作出。 您的加載項需要監聽Application.MarkerEvent以捕獲引發的事件。

有在Visio中SDK

+0

感謝您的回答的例子,雖然我並不需要它了。我會接受未來訪問者未經測試的答案(因爲我堅​​信這是有效的)。 –