我有以下设置:我使用VSTO为Visio 2010编写了一个加载项,此加载项为UI添加了另一个功能区。通过这个用户界面,可以打开新表单并做一些很酷的事情。
使用我重写的工具的旧版本,可以右键单击形状并直接从形状打开表单。这是通过向形状添加动作来完成的:
=RUNADDON("VS2.EXE")
其中VS2.exe是打开另一个表单的可执行文件(必须位于Visio的搜索路径中)。
我的问题是,如果有一种简单的方法可以从形状动作内部调用加载项/功能区中的方法吗?类似的东西:
=RUNADDON("MyAddIn.MyMethod()")
我找到的相关信息(但没有回答这个问题)是
感谢您的回复或建议。
答案 0 :(得分:2)
If you want to call an action in your add-in from the ShapeSheet, then you need to raise an event using either of the two following functions:
QUEUEMARKEREVENT("My ContextString") See https://msdn.microsoft.com/en-us/library/office/ff767955.aspx
RUNADDONWARGS("QueueMarkerEvent","My ContextString") See https://msdn.microsoft.com/EN-US/library/office/ff768158.aspx
The first one is newer and made specifically for this purpose. Your add-in needs to be listening to the Application.MarkerEvent to capture the raised events.
There are examples in the Visio SDK