C# word加载项,customui中combobox上的按键处理

C# word加载项,customui中combobox上的按键处理,c#,events,ms-word,vsto,add-in,C#,Events,Ms Word,Vsto,Add In,大宗报价 在Word加载项中需要有关CustomUI的帮助。 我有一个 <combobox /> 在我的自定义ui中 如何处理按用户输入的操作? 当用户在组合框中按Enter键时,我需要执行一些操作。 我是否可以以某种方式添加KeyDown事件,或者将IRibbonControl强制转换为有用的内容 更新: 决定不包含该功能。但仍然对该问题的解决方案感兴趣。即使是WindowSelectionChange事件也帮不了你。它适用于其他按键,但不适用于回车键和退格键 你必须使用 编辑

大宗报价

在Word加载项中需要有关CustomUI的帮助。 我有一个

<combobox /> 
在我的自定义ui中

如何处理按用户输入的操作? 当用户在组合框中按Enter键时,我需要执行一些操作。 我是否可以以某种方式添加KeyDown事件,或者将IRibbonControl强制转换为有用的内容

更新:


决定不包含该功能。但仍然对该问题的解决方案感兴趣。

即使是WindowSelectionChange事件也帮不了你。它适用于其他按键,但不适用于回车键和退格键

你必须使用

编辑**

当按下任何一个键时,都有一个回调,它将被调用

 private static IntPtr HookCallback(
                int nCode, IntPtr wParam, IntPtr lParam)
            {
                if (nCode >= 0 && wParam == (IntPtr) WM_KEYDOWN)
                {
                    int vkCode = Marshal.ReadInt32(lParam);
                    //Check if the enter key is pressed
                    if (vkCode == (int) Keys.Enter )
                        // Do here whatever you need
                }
                return CallNextHookEx(_hookID, nCode, wParam, lParam);
            }

谢谢,但是,即使是这个解决方案,我也不知道什么时候按下回车键。谢谢您的帮助:好的,Word Ribbon中没有焦点事件或类似的内容,所以我不知道它是在我的组合框中按下的还是在其他地方按下的。但是链接是有用的对不起,如果有任何最简单的,请忽略这一点。尝试使用Windows辅助功能API,您可以在功能区中找到控件的状态。