C# - 如何只执行RibbonSplitButton的顶部按钮,忽略outlook加载项的下拉按钮

时间:2016-02-24 07:37:50

标签: c# outlook outlook-addin ribbon ribbon-control

我的前景功能区中有一个带有按钮和下拉按钮的RibbonSplitButton。我想只触发顶部按钮忽略下拉。

如果我尝试使用Outlook加载项中的execute方法触发按钮,则会抛出错误,因为按钮名称都相同。

Error in IAccessible.accDoDefaultAction: MAPI_E_CALL_FAILED

任何人都可以帮助我点击唯一的顶部按钮。

1 个答案:

答案 0 :(得分:0)

如果要以编程方式区分内置功能区控件,可以使用CommandBars类的ExceuteMso方法。在没有特定命令的对象模型的情况下,此方法很有用。适用于内置按钮,toggleButtons和splitButtons的控件。失败时,它会返回无效IdMso的E_InvalidArg,以及未启用或不可见的控件的E_Fail。

以下示例执行“复制”按钮。

  Application.CommandBars.ExecuteMso(“Copy”)

但如果它是一个自定义控件 - Fluent UI并没有为此提供任何内容。您可以尝试使用Accessibility API