У меня есть надстройка Outlook VSTO (.net 4), которая открывает форму WPF.
В форме есть несколько элементов управления, включая 2 текстовых поля.
Если я открою форму, когда у меня выбрано электронное письмо (с фокусом) в обозревателе электронной почты, тогда все будет работать как положено.
Однако ...
Если я открою форму, когда выделю какой-либо адрес электронной почты, щелкнув тело сообщения (т. Е. Само сообщение), тогда текстовые поля в моей форме не будут использовать клавишу пробела или комбинации клавиш, такие как Ctrl + C, Ctrl + V.
Если, например, нажать «Пробел», Outlook (в фоновом режиме) переходит к следующему сообщению.
Оказывается, это известная проблема, но я подумал, что в качестве обходного пути я мог бы настроить обозреватель электронной почты, чтобы он имел фокус непосредственно перед открытием формы.
Кто-нибудь знает, как я могу это сделать?
Решение
ОК, благодаря SliverNinja, я справился с этим обходным путем, который заставляет выбранное электронное письмо на панели предварительного просмотра исчезать, а затем снова появляться, но это работает, что мне достаточно ...
var app = new Microsoft.Office.Interop.Outlook.Application();
var activeExplorer = app.ActiveExplorer();
var previewPaneVisibility = activeExplorer.IsPaneVisible(OlPane.olPreview);
activeExplorer.ShowPane(OlPane.olPreview, false);
activeExplorer.ShowPane(OlPane.olPreview, previewPaneVisibility);