我的小伙伴在写一个功能,需要获得输入的时候,判断是键盘输入或鼠标输入,通过 PreviewTextInput 获得键盘输入就做一些输出。 但是他发现,在使用鼠标书写的时候,获得 PreviewTextInput ,而且值是 \u0003 ,他换了一个电脑就好了。

头像大神的研究下,发现有道词典会拿到输入框的事件,在鼠标指向的词进行翻译。所以他就给TextBox 发送了\u0003

解决方法是去掉 \u0003 或者关闭有道词典。

如果你发现这个问题,那么尝试关闭有道词典和其他的软件,如果已经解决,就是他们的坑。但是从我国的法律规定,是不可以在软件把其他软件干掉。

所以网易太厉害了,现在也没有什么方法。或者检测到有道词典就告诉用户,因为技术有限,不能在开启有道词典使用软件。

在这之前需要说的,因为我的这个鼠标被windows识别为键盘,于是就找了很久,都在想如何判断一个键盘是什么设备,所以,如果发现自己的软件出现意外的输入,那么先关闭有道。

参见:意外的键盘输入


本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/wpf-PreviewTextInput-%E5%9C%A8%E9%BC%A0%E6%A0%87%E8%BE%93%E5%85%A5%E8%8E%B7%E5%BE%97-_u0003.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系