4

您好我正在开发一种解决方案,以使用 VSTO 2012 和 Microsoft Outlook 2010 插件在 Outlook 2010 中创建工具栏。简而言之,我可以创建 Outlook 功能区和一个按钮,但我无法获得打开 .oft 文件的按钮。在 Visual Studio 中,我收到以下错误“当前上下文中不存在名称‘应用程序’”。我还添加了对 Microsoft Office 14.0 对象库的引用。下面是代码...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Ribbon;

namespace OutlookAddIn8
{
public partial class Ribbon1
{
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {

    }
    private void CreateItemFromTemplate()
    {
        Outlook.Folder folder =
            Application.Session.GetDefaultFolder(
            Outlook.OlDefaultFolders.olFolderDrafts) as Outlook.Folder;
        Outlook.MailItem mail =
            Application.CreateItemFromTemplate(
            @"c:\ivy.oft", folder) as Outlook.MailItem;
        mail.Subject = "Congratulations";
        mail.Save();
    }

    private void button1_Click(object sender, RibbonControlEventArgs e)
    {

    }
}

}

感谢任何帮助,这可能是一些简单的事情被遗漏了。

4

2 回答 2

4

可以使用 访问 Application 的实例Globals.ThisAddIn.Application。如果您将您的 AddIn 类重命名为不同的名称,例如 MyAddIn,那么命令将是:Globals.MyAddIn.Application

这是一个包含更多详细信息的链接:http: //msdn.microsoft.com/en-us/library/vstudio/bb157876 (v=vs.100).aspx

于 2012-12-12T03:58:05.177 回答
2

终于到了最后,这里的代码......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Tools.Ribbon;
using Outlook = Microsoft.Office.Interop.Outlook;


namespace OutlookAddIn3
{
public partial class Ribbon1
{
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {

    }
    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        Outlook.Application Application = Globals.ThisAddIn.Application;
        Outlook.MailItem mail =
            Application.CreateItemFromTemplate(
            @"Z:\Transfer\Outlook 2010 Templates\testsubject.oft") as Outlook.MailItem;
        mail.Display(true);
    }
于 2012-12-13T17:15:02.367 回答