【问题标题】:Get event on any tab click in ribbon in MS word VSTO add in在 MS Word VSTO 添加的功能区中单击任何选项卡上的事件
【发布时间】:2015-09-07 05:16:37
【问题描述】:

我已经在 Visual Studio 中为 MS Office 2010 创建了一个使用 VSTO 插件的 MsWordAddin。到目前为止,我已经在功能区和自定义任务窗格中添加了一个新选项卡。 现在我想要的是在用户选择功能区上的任何选项卡时获得一个事件,这样我就可以评估用户对此事件的执行情况,例如用户选择页面布局选项卡并将页面方向从水平更改为横向。

我找到了SelectionChange,BeforeRightClick,BeforeDoubleClick 文档事件,但它们不是我想要的。

有没有办法在 MS Word 中获取事件或任何其他解决方法来评估这种情况?


我想以与RibbonHero 相同的方式进行评估 希望这能很好地解决我的问题。

【问题讨论】:

    标签: c# ms-word ms-office vsto office-interop


    【解决方案1】:

    不,Fluent UI(又名 Ribbon UI)和 Word 对象模型都没有为此提供任何事件。如果您在特定选项卡上拥有加载项控件,则可以考虑处理在显示选项卡时应触发的回调。

    所以我可以评估用户对此事件的执行情况,例如用户选择页面布局选项卡并将页面方向从水平更改为横向。

    相反,我建议处理Document's events

    【讨论】:

    • 感谢 Eugene 的回复。但这不是我想要评估的方式。可能是我不清楚问题,抱歉。
    • 感谢 Eugene 的回复。但这不是我想要评估的方式。可能是我不清楚问题,抱歉。我想在用户点击页面的同时进行评估布局并更改布局。这是一步,像这样将有多种技能需要评估。如果我在我的插件中采用类似按钮的自定义控件,我只能在用户单击该按钮并且我不想授予控制权时进行评估用户。无论如何,我使用了非常愚蠢的技巧来评估...时间滴答事件,我在每个滴答上评估用户是否执行了该技能。
    • 我已经编辑了问题以使其更清晰。请看一下。
    • 最后,我在功能区上单击自定义按钮时评估了技能。如果您必须评估很少的技能,timer_tick 也是一个选项。
    【解决方案2】:

    尝试使用 MSAA ..您可以获得示例代码 https://code.msdn.microsoft.com/CSOfficeRibbonAccessibility-cd7fe67f#content

    我已经实现了这个,发现非常有用。

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 2011-08-26
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多