用ribbon启动Outlook插件

本文关键字:插件 Outlook 启动 ribbon | 更新日期: 2023-09-27 18:08:02

我正在开发Outlook插件。基本上已经完成了,但有一件事我似乎不能明确指出来。在我的(Outlook Add In)项目中,我添加了一个新项目(Ribbon (Visual Designer)),我称之为EmailTransferRibbon。此功能区正在Outlook中显示。我希望当我点击这个功能区按钮时能够启动我的Outlook Add In。

我的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是不一样的系统事件args:

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

谁能告诉我如何启动我的添加按Ribbon按钮?谢谢!

用ribbon启动Outlook插件

你可以设置你的插件为"load on demand",这可以创建你的Ribbon 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以加载您的插件。