WPF TextBox不接受删除键

时间:2009-06-10 19:48:43

标签: c# wpf textbox outlook

我在Microsoft Outlook 2003窗口中嵌入了WPF应用程序。一切正常,但我的TextBox控件都没有接受退格键。我做了一些研究,只有当我的窗口是outlook窗口的子窗口而不是它是另一个窗口时才存在问题(我将它注入到firefox中并且它工作正常,如果我将我的wpf UserControl放入对话窗口它也有效)。这似乎是人们报告的相反问题(文本框只接受删除/箭头键/等),这个帖子有点提供信息(虽然没有解决我的问题):WPF TextBox not accepting Input when in ElementHost in Window Forms

这是我的设置: 我创建了一个WPF UserControl,然后将其放入ElementHost中。我将该主机放入一个Wi​​ndows窗体UserControl,它被放入另一个Forms UserControl,它被放入NativeWindow(我已经尝试删除一些UserControl包装,但没有任何效果)。然后,此Native窗口将成为Outlook窗口的子窗口,并放置在我需要它在Outlook中的位置。

有没有人有任何想法?也许我需要以不同的方式处理Windows消息?我做了一些研究,发现当我按下退格键时,Outlook会收到WM_COMMAND消息,但是当我没有点击任何其他内容时则不会。也许它将退格键解释为菜单加速器或类似的东西?

感谢。

1 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的方法。我扩展了Outlook的WndProc,并收听了WM_COMMAND。每当它出现时,我都会告诉我的WPF UserControl系统将退格键发送到当前以键盘为中心的控件。

我似乎无法让WM_COMMAND在除了退格之外的任何其他按键上启动,所以它现在工作得非常好。