释放按键时会触发按键事件。这适用于 a、b 等普通键。但是,按住箭头键或转义键会产生不同的结果。 它不是在释放按键时触发按键向上事件,而是在按键按下事件后立即触发。因此,按住箭头键相当于快速按下并释放该键多次。 有什么解释和解决办法来确定 key 何时实际释放?
最佳答案
在释放按键之前,KeyUp 事件实际上不会被触发(对于所有键,不仅仅是箭头键等),只有许多重复的 KeyDown 事件。至少,从一些测试代码来看我是这样的。
我的解决方法是在使用检测到 KeyDown 事件后禁用 KeyDown 处理程序
RemoveHandler Me.KeyDown, AddressOf Form1_KeyDown
然后在触发 KeyUP 事件时重新启用。
AddHandler Me.KeyDown, AddressOf Form1_KeyDown
当然,如果您想处理同时按下的多个按键,那么这是行不通的。您必须存储相关 key 是否已关闭并忽略相应的 KeyDown 事件。
关于c# - .NET 中的键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531618/