在开发过程中,我观察到某些带有 Windows CE 和可能的 Windows Mobile 的 PDA 在按键事件中发送了两次 Enter 键,因此我执行了两次位于返回按钮的控件按键事件下的代码。
我怀疑这是一个硬件错误,我想问一下您是如何在不更改应用程序逻辑的情况下解决它的。
在开发过程中,我观察到某些带有 Windows CE 和可能的 Windows Mobile 的 PDA 在按键事件中发送了两次 Enter 键,因此我执行了两次位于返回按钮的控件按键事件下的代码。
我怀疑这是一个硬件错误,我想问一下您是如何在不更改应用程序逻辑的情况下解决它的。
我不知道这是否会有所帮助,但如果您阅读键盘端口 Enter 被视为两个字节而不是一个字节。
不改变逻辑?你真的不能(除非有硬件或固件修复)。我猜想最简单的机制(需要更改逻辑)是在短时间内处理两个 Enter 键或按键(比如 < 100 毫秒),然后忽略第二个。
这也发生在我身上,原来是因为在控制面板->键盘中启用了“启用字符重复”选项。对于我们使用的键盘,默认的重复延迟太快了,所以我只是放慢了速度,问题就消失了。