我正在努力为我的vsto Outlook加载项实现基本的快捷方式。但是,我至少需要能够将文本粘贴到一个组合框,该组合框位于出现在邮件预览窗格中的小型表单窗口中。
我仅需按“ ctrl”或仅按“ v”即可实现粘贴功能 我已经尝试了在互联网上找到的所有内容,甚至还通过以下方法在测试Windows窗体项目中使用了该功能:
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
comboBox1.Text = "success";
}
}
但是,当我在Outlook vsto项目中尝试相同的代码时,这根本行不通。是否有人有相同或相似的问题?您是如何解决的?
谢谢您的帮助。
答案 0 :(得分:0)
Fluent UI中的Combobox控件不提供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 UI(又称为Ribbon UI)的更多信息:
答案 1 :(得分:0)
Outlook会吃一些关键招。我可以解决的唯一方法是安装键盘钩(SetWindowsHookExW(WH_GETMESSAGE,...)
)并将适当的消息直接转发到我的控件。