【问题标题】:How do I implement default shortcuts in an vsto Outlook add-in?如何在 vsto Outlook 加载项中实现默认快捷方式?
【发布时间】:2019-11-04 09:24:48
【问题描述】:

我正在努力为我的 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 项目中尝试相同的代码时,这根本不起作用。有没有人有相同或类似的问题?你是怎么解决的?

感谢您的帮助。

【问题讨论】:

    标签: outlook vsto outlook-addin ribbonx


    【解决方案1】:

    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)的更多信息:

    【讨论】:

    • 感谢您的快速回复。但是,我使用 Visual Studio 中的事件属性生成了事件处理程序。我还能够仅使用控制键或仅按下“v”键来实现粘贴功能。此外,我不使用功能区,但我在邮件的预览窗格中有一个小的表单窗口。我将在我的帖子中编辑此信息,对于缺少的信息,我深表歉意。
    • OP 表示表单上的组合框,而不是功能区上的组合框。
    【解决方案2】:

    Outlook 会吃掉一些键击。我可以解决这个问题的唯一方法是安装一个键盘挂钩 (SetWindowsHookExW(WH_GETMESSAGE,...)) 并将适当的消息直接转发到我的控件。

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 2020-09-18
      • 2014-05-10
      • 2016-08-27
      相关资源
      最近更新 更多