我正在开发一个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);
有人可以通过按功能区按钮告诉我如何启动我的添加?谢谢!
答案 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。