更改outlook mailitem选择c#

时间:2012-04-18 07:47:21

标签: c# outlook add-in mailitem

我想从outlook外接程序中选择一个mailItem。 我知道如何从c#中显示mailitem,但我需要在outlook窗口中选择它。

显示mailitem:

mailItem.Display();

我正在使用Outlook 2010加载项。

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:4)

使用Explorer.ClearSelection(),然后Explorer.AddToSelection()。在调用AddToSelection()之前,您应该使用Explorer.IsItemSelectableInView()以确保当前资源管理器视图中存在您要选择的项目。

Application.ActiveExplorer()将为您提供当前活动的资源管理器(如果存在)。

以下是sample snippet taken from here稍加修改以检查IsItemSelectableInView )。

Outlook._Explorer explorer = OutlookApp.ActiveExplorer();  // get active explorer
explorer.ClearSelection(); // remove current selection
Outlook.NameSpace ns = OutlookApp.Session; 
object item = ns.GetItemFromID(entryId, Type.Missing); // retrieve item
if (explorer.IsItemSelectableInView(item)) // ensure item is in current view
  explorer.AddToSelection(item); // change explorer selection
else
  // TODO: change current view so that item is selectable
Marshal.ReleaseComObject(item); 
Marshal.ReleaseComObject(ns); 
Marshal.ReleaseComObject(explorer); 

要更改当前Explorer视图,您可以使用Explorer.CurrentFolderExplorer.CurrentView