Max*_*Max 5 c# wpf outlook textbox
我有一个嵌入在 Microsoft Outlook 2003 窗口中的 WPF 应用程序。一切工作正常,除了我的 TextBox 控件都不接受退格键。我做了一些研究,只有当我的窗口是 Outlook 窗口的子窗口时,问题才存在,而不是另一个窗口(我将它注入到 firefox 中,它工作正常,如果我将 wpf UserControl 放入对话框窗口中,则问题存在)它也有效)。这似乎是人们报告的相反问题(文本框仅接受删除/箭头键/等),并且该线程提供了一些信息(尽管没有解决我的问题):WPF TextBox not acquire input when in ElementHost in Window Forms
这是我的设置:我创建一个 WPF UserControl,然后将其放入 ElementHost 中。我将该主机放入 Windows 窗体用户控件中,该控件放入另一个窗体用户控件中,后者放入 NativeWindow 中(我尝试删除一些用户控件包装,但没有效果)。然后,此本机窗口将成为 Outlook 窗口的子窗口,并放置在 Outlook 中我需要的位置。
有人有什么主意吗?也许我需要以不同的方式处理 Windows 消息?我做了一些研究,发现当我按退格键时 Outlook 会收到 WM_COMMAND 消息,但当我不按其他任何键时则不会。也许它将退格键解释为菜单加速器或类似的东西?
谢谢。
我找到了解决这个问题的方法。我扩展了 Outlook 的 WndProc 并监听 WM_COMMAND。每当它出现时,我都会告诉我的 WPF UserControl 系统将退格键发送到当前键盘聚焦的控件。
除了退格键之外,我似乎无法让 WM_COMMAND 在任何其他按键上触发,所以它现在工作得很好。
| 归档时间: |
|
| 查看次数: |
2244 次 |
| 最近记录: |