首页 > 解决方案 > C# 自定义功能区错误

问题描述

我使用下面的代码在 Outlook 的主页选项卡上显示一个按钮,但是当我进入一个新实例(例如创建新电子邮件)时,我收到一个错误,因为 TabHome 不再可用

  <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
  <tab idMso="TabHome">
<group id="Phishing" label="Phishing">
  <button id="Phishing_Email" label="Phishing_Email" size="large" />
</group>
  </tab>
</tabs>
</ribbon>
</customUI>

我尝试添加一个try catch:

  public Ribbon1()
    {
        try
        {
            GetCustomUI("Ribbon1");
        }


        catch (System.Exception e) { }

    }

但我似乎无法防止这个错误有人能帮忙吗?

标签: c#outlookvsto

解决方案


检查器窗口有一个带有TabNewMailMessageidMso 值的选项卡。idMso因此,您需要根据要创建自定义 UI 的位置返回适当的值。

GetCustomUI方法提供了一个参数,您可以使用该RibbonID参数来确定您的自定义 UI 将被加载到哪里。只需尝试调试加载项并查看为检查器和资源管理器窗口传递的可能值。

最后,您不应该GetCustomUI在代码中调用该方法。相反,它会在创建 UI 时由 Office 应用程序调用。


推荐阅读