Как реализовать ярлыки по умолчанию в надстройке Outlook vsto? - PullRequest
1 голос
/ 04 ноября 2019

Я изо всех сил пытаюсь реализовать основные ярлыки для моей надстройки vsto Outlook. Однако мне нужно, по крайней мере, иметь возможность вставить текст в комбинированный список, который находится в окне небольших форм, которое появляется на панели предварительного просмотра почты.

Я смог реализоватьФункция вставки только с нажатой клавишей «Ctrl» или «V». Я перепробовал все, что нашел в Интернете, и даже получил функциональность, работая в тестовом проекте Windows Forms с:

private void comboBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.V)
            {
                comboBox1.Text = "success";
            }
        }

Однако, когда я пытаюсьтот же код в проекте outlook vsto это просто не работает. У кого-нибудь была такая же или похожая проблема? Как вы это исправили?

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Outlook ест несколько нажатий клавиш. Единственный способ, которым я мог бы обойти это, - это установить хук клавиатуры (SetWindowsHookExW(WH_GETMESSAGE,...)) и переслать соответствующие сообщения непосредственно на мои элементы управления.

0 голосов
/ 04 ноября 2019

Элемент управления Combobox из пользовательского интерфейса Fluent не предоставляет событие KeyDown. Лучшее, что вы можете сделать, это реализовать обратные вызовы ленты: getText и onChange.

Обратный вызов onChange вызывается, когда значение в поле редактирования изменяется и фиксируется пользователем.

Подпись обратного вызова должна выглядеть следующим образом:

C#: void OnChange(IRibbonControl control, string text)
VBA: Sub OnChange(control As IRibbonControl, text As String)
C++: HRESULT OnChange([in] IRibbonControl *pControl, [in] BSTR *pbstrText)
Visual Basic: Sub OnChange(control As IRibbonControl, text As String)

Подробнее о пользовательском интерфейсе Fluent (также известном как Ribbon UI) можно прочитать в следующих статьях:

...