Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF文本框不接受删除键_C#_Wpf_Textbox_Outlook - Fatal编程技术网

C# WPF文本框不接受删除键

C# WPF文本框不接受删除键,c#,wpf,textbox,outlook,C#,Wpf,Textbox,Outlook,我在MicrosoftOutlook2003窗口中嵌入了一个WPF应用程序。一切正常,除了我的文本框控件都不接受退格键。我做了一些研究,只有当我的窗口是outlook窗口的子窗口,而不是另一个窗口时,问题才存在(我将它注入firefox,它工作正常,如果我将wpf UserControl放入对话框窗口,它也可以工作)。这似乎是人们报告的相反问题(textbox仅接受删除/箭头键/等),该线程提供了一些信息(尽管没有解决我的问题): 以下是我的设置: 我创建了一个WPF用户控件,然后将其放入Ele

我在MicrosoftOutlook2003窗口中嵌入了一个WPF应用程序。一切正常,除了我的文本框控件都不接受退格键。我做了一些研究,只有当我的窗口是outlook窗口的子窗口,而不是另一个窗口时,问题才存在(我将它注入firefox,它工作正常,如果我将wpf UserControl放入对话框窗口,它也可以工作)。这似乎是人们报告的相反问题(textbox仅接受删除/箭头键/等),该线程提供了一些信息(尽管没有解决我的问题):

以下是我的设置: 我创建了一个WPF用户控件,然后将其放入ElementHost中。我将该主机放入一个Windows窗体UserControl,该控件放入另一个窗体UserControl,该控件放入一个NativeWindow(我尝试删除一些UserControl包装,但没有效果)。然后,此本机窗口将成为Outlook窗口的子窗口,并放置在Outlook中需要它的位置

有人知道吗?也许我需要以不同的方式处理windows消息?我做了一些研究,发现Outlook在我按backspace键时会收到WM_命令消息,但在我不按任何其他键时不会收到。也许它把退格键解释为菜单加速器之类的东西


谢谢。

我找到了解决这个问题的办法。我扩展了Outlook的WndProc并听取了WM_命令。每当它出现时,我告诉我的WPF用户控制系统将退格键发送到当前以键盘为中心的控件


除了backspace,我似乎无法让WM_命令在任何其他按键上启动,所以它现在运行得很好。

出于兴趣,您是否也比较了WParam的值,或者您是否只看到事件是否发生?此解决方案是否仍然适用于您?:-)我只是在WM_命令上发送退格,因为它工作得很好。但是,Ctrl-Z也会触发一个退格,但很难注意到,因为您正在以任何方式删除撤消中的字符。我的想法是:我让它工作起来了,我还有其他事情要担心,实际上这件事还没有解决:)嗨,我遇到了完全相同的问题,但是在Outlook的WPF窗口中嵌入了一个webbrowser。你能发布一些代码说明你是如何做到这一点的吗?谢谢