启动Outlook使用功能区添加

时间:2014-06-11 10:29:49

标签: c# outlook-addin ribbon eventargs

我正在开发一个Outlook Add In。它已经完成了很多工作,但有一件事我似乎无法动手。在我的(Outlook Add In)项目中,我添加了一个新项目(Ribbon(可视设计器)),我称之为EmailTransferRibbon。此功能区正在Outlook中显示。我希望能够在单击此功能区按钮时启动Outlook添加。

这就是我的Ribbon的样子:

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);

有人可以通过按功能区按钮告诉我如何启动我的添加?谢谢!

1 个答案:

答案 0 :(得分: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以加载您的添加-in。