如何防止Texter/PhraseExpress在VB.NET中导致键控错误事件?

如何防止Texter/PhraseExpress在VB.NET中导致键控错误事件?,vb.net,event-handling,keyboard,Vb.net,Event Handling,Keyboard,我有一个VB.NET应用程序。当安装并启用了Texter或PhraseExpress时,该程序运行不良。调试表明,有时我可以在字段中按Enter键,但不会触发任何事件(即事件处理程序中没有断点被命中),然后我再次按Enter键,它们将被触发两次。(基本上,如果我一直按enter键,这些循环会发生-一次什么都不会发生,下一次我会得到两个事件,下一次按键什么都不做,下一次触发两个事件,等等。) 由于Enter在某些地方用于触发搜索,或使用数字键盘在字段之间移动以快速输入数据,因此这实际上中断了这些位

我有一个VB.NET应用程序。当安装并启用了TexterPhraseExpress时,该程序运行不良。调试表明,有时我可以在字段中按Enter键,但不会触发任何事件(即事件处理程序中没有断点被命中),然后我再次按Enter键,它们将被触发两次。(基本上,如果我一直按enter键,这些循环会发生-一次什么都不会发生,下一次我会得到两个事件,下一次按键什么都不做,下一次触发两个事件,等等。)

由于Enter在某些地方用于触发搜索,或使用数字键盘在字段之间移动以快速输入数据,因此这实际上中断了这些位置的程序

问题是高度可重复性-禁用Texter或PhraseExpress会导致程序运行完全正常。再次启用它们会导致它崩溃


请注意,在这两个文本扩展程序中,我没有为Enter键指定任何事件。事实上,对于Texter(尚未使用PE完成此特定测试),即使没有定义任何替换,也会发生这种情况,这仅仅取决于Texter是启用还是禁用。

尝试通过覆盖ProcessDialogKey来侦听事件
不要直接附加到控件的事件。

在PhraseExpress中,如果在这些键上遇到问题,请禁用专家选项“路由选项卡并通过PhraseExpress输入”

截图:

还请注意,同时使用multipe文本扩展器可能会产生干扰。不幸的是,对于美国供应商来说,没有办法绕过这一限制

迈克尔·施密特

PhraseExpress团队

谢谢!我没有安装多个文本扩展器,我先尝试了Tester,然后我们在另一台机器上尝试了短语表达。