直接从shape-action调用C#Add-In方法

时间:2011-08-02 13:19:21

标签: c# add-in action visio shape

我有以下设置:我使用VSTO为Visio 2010编写了一个加载项,此加载项为UI添加了另一个功能区。通过这个用户界面,可以打开新表单并做一些很酷的事情。

使用我重写的工具的旧版本,可以右键单击形状并直接从形状打开表单。这是通过向形状添加动作来完成的:

=RUNADDON("VS2.EXE")

其中VS2.exe是打开另一个表单的可执行文件(必须位于Visio的搜索路径中)。

我的问题是,如果有一种简单的方法可以从形状动作内部调用加载项/功能区中的方法吗?类似的东西:

=RUNADDON("MyAddIn.MyMethod()")

我找到的相关信息(但没有回答这个问题)是

感谢您的回复或建议。

1 个答案:

答案 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