我的小伙伴在写一个功能,需要获得输入的时候,判断是键盘输入或鼠标输入,通过 PreviewTextInput 获得键盘输入就做一些输出。 但是他发现,在使用鼠标书写的时候,获得 PreviewTextInput ,而且值是 \u0003 ,他换了一个电脑就好了。
在头像大神的研究下,发现有道词典会拿到输入框的事件,在鼠标指向的词进行翻译。所以他就给TextBox 发送了\u0003
。
解决方法是去掉 \u0003
或者关闭有道词典。
如果你发现这个问题,那么尝试关闭有道词典和其他的软件,如果已经解决,就是他们的坑。但是从我国的法律规定,是不可以在软件把其他软件干掉。
所以网易太厉害了,现在也没有什么方法。或者检测到有道词典就告诉用户,因为技术有限,不能在开启有道词典使用软件。
在这之前需要说的,因为我的这个鼠标被windows识别为键盘,于是就找了很久,都在想如何判断一个键盘是什么设备,所以,如果发现自己的软件出现意外的输入,那么先关闭有道。
参见:意外的键盘输入
本文会经常更新,请阅读原文: https://blog.lindexi.com/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 ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。
无盈利,不卖课,做纯粹的技术博客
以下是广告时间
推荐关注 Edi.Wang 的公众号
欢迎进入 Eleven 老师组建的 .NET 社区
以上广告全是友情推广,无盈利