Изменить выбор Outlook mailitem c #

Я хочу выбрать mailItem из надстройки Outlook. Я знаю, как отображать элемент почты из C #, но мне нужно выбрать его внутри самого окна Outlook.

Показать почтовый элемент:

mailItem.Display();

Я использую надстройку Outlook 2010.

Кто-нибудь знает, как это сделать?


person Zarkos    schedule 18.04.2012    source источник


Ответы (1)


Используйте Explorer.ClearSelection(), а затем _ 2_. Вы должны использовать Explorer.IsItemSelectableInView() перед вызовом AddToSelection(), чтобы убедиться, что элемент, который вы хотите выбрать существует в текущем представлении проводника.

Application.ActiveExplorer() предоставит вам текущий активный проводник, если он существует.

Вот образец фрагмента, взятый отсюда ( слегка изменен для проверки 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.CurrentFolder или _ 10_

person SliverNinja - MSFT    schedule 18.04.2012
comment
Милый человек :) спасибо! (srr для позднего ответа, но я был занят другим делом) - person Zarkos; 09.05.2012
comment
Функция Application.ActiveExplorer () не будет работать в режиме просмотра разговора. - person phuongnd; 14.02.2017
comment
Откуда вы получаете OutlookApp? - person Steve Byrne; 15.08.2017
comment
@StevenByrne Это просто псевдоним пространства имен для удобства чтения .... using OutlookApp = Microsoft.Office.Interop.Outlook.Application; - person SliverNinja - MSFT; 15.08.2017