gpt4 book ai didi

c# - Outlook 2010 加载项 C# 公共(public)方法

转载 作者:太空狗 更新时间:2023-10-30 00:27:11 25 4
gpt4 key购买 nike

我需要开发 Outlook 2010 加载项,我是 Visual Studio 和 C# 的新手,因为我主要使用 PHP 和 JavaScript。我使用的是 Visual Studio 2010,我已经使用内置的 Outlook 2010 加载项模板创建了一个项目。考虑以下代码:

// file ThisAddIn.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;


namespace OutlookAddIn1
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}

public string displayCount()
{
Outlook.MAPIFolder inbox = this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

Outlook.Items unreadItems = inbox.Items.Restrict("[Unread]=true");

return string.Format("Unread items in Inbox = {0}", unreadItems.Count);
}

#region VSTO generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}

#endregion
}
}

// file Ribbon1.cs

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

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

}

private void button1_Click(object sender, RibbonControlEventArgs e)
{
// call ThisAddIn.displayCount() here
}
}
}

问题是,如何从 Ribbon1 类或其他任何地方的 ThisAddIn 类调用公共(public)方法?我知道我需要一个对象引用,但我怎样才能找到一个实例的名称呢?我看不到在现有文件中的任何位置创建的 ThisAddIn 实例。还是我误解了这个概念,应该以其他方式完成?我也将不胜感激有关创建 Office 加载项的任何建议或信息链接。

最佳答案

在 VSTO 项目中,一个名为 Globals 的自动生成的密封类可从项目中的任何位置使用。 Globals 包含许多公共(public)或内部静态属性,其中之一是 ThisAddIn(属于 ThisAddIn 类型,足够恰当)。您的代码将如下所示,而不是上面的代码。

在 Ribbon1.cs 中:

public void DoSomethingOnRibbon(Office.IRibbonControl control)
{
string count = Globals.ThisAddIn.displayCount();
...
}

希望对您有所帮助。

关于c# - Outlook 2010 加载项 C# 公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com