1

我正在开发 Outlook 加载项。它已经完成了很多,但是有一件事我似乎无法解决。在我的(Outlook 插件)项目中,我添加了一个名为 EmailTransferRibbon 的新项目(功能区(可视化设计器))。此功能区正在 Outlook 中显示。当我单击此功能区按钮时,我希望能够启动我的 Outlook 加载项。

这是我的功能区的样子:

public partial class EmailTransferRibbon
{
    private void EmailTransferRibbon_Load(object sender, RibbonUIEventArgs e)
    {   
    }

    private void btnEmailTransfer_Click(object sender, RibbonControlEventArgs e)
    {
    }
}

这是我希望功能区按钮导航到的添加:

public partial class ThisAddIn
{
    EmailTransferForm emailTransferForm = new EmailTransferForm();

    public void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        InboxFolderItemAdded();
        Button btnRefresh = emailTransferForm.Controls.Find("btnRefresh", true).FirstOrDefault() as Button;
        btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);

    }
}

我试图做这样的事情,但这是一个问题,因为 RibbonControlEventArgs 与 System EventArgs 不同:

var addIn = Globals.ThisAddIn;
addIn.ThisAddIn_Startup(sender, e);

有人可以告诉我如何通过按功能区按钮来启动我的插件吗?谢谢!

4

1 回答 1

0

您可以将加载项设置为“按需加载”,这可以创建您的功能区 UI 并有效地缓存您的加载项,直到您想要完全加载它:

按需加载 VSTO 加载项 - Andrew Whitechapel - 网站主页 - MSDN 博客 http://blogs.msdn.com/b/andreww/archive/2008/07/14/demand-loading-vsto-add-ins.aspx

如果您不希望加载项在您单击按钮之前加载,那么该按钮将需要调用 VBA 代码来加载您的加载项,或者该按钮需要由另一个加载项驱动,该加载项将加载您的加载项。无论哪种情况,您都需要使用 Office 对象模型从 Outlook.Application.COMAddINs 访问 COMAddins 集合,并为您的加载项获取特定的 COMAddIn 对象(匹配 ProgID 值)并设置 Connect = True 以加载您的添加-在。

于 2014-06-25T16:19:46.383 回答