键释放时触发按键事件。这适用于普通按键,如a,b等。然而,按住箭头键或退出键会产生不同的结果。 而不是在释放按键时触发按键事件,而是在按键事件之后立即触发事件。所以,按住一个箭头键变成等于非常快速地按压和释放该键多次。 任何解释和解决办法,以确定密钥何时实际发布?.NET中的键盘事件
2
A
回答
3
KeyUp事件实际上并没有被触发(对于所有的键不仅仅是方向键等),直到你释放键时,只有许多重复的KeyDown事件。至少,这是它从一些测试代码看待我的方式。
我的解决方法是使用
RemoveHandler Me.KeyDown, AddressOf Form1_KeyDown
,然后重新启用时KeyUp事件被触发检测到KeyDown事件后禁用的KeyDown处理程序。
AddHandler Me.KeyDown, AddressOf Form1_KeyDown
当然,如果你想同时处理多个按键,那么这是行不通的。您必须存储相关密钥是否已关闭,并忽略相应的KeyDown事件。
1
我刚刚遇到类似的问题。键盘处理行为怪异:
如果对焦和处理程序是在文本框:
- 当字母数字键被按下,我得到了多个新闻Down事件
- 箭头键和功能键产生多个Down事件
如果为启用KeyPreview的表单处理事件,则仅处理箭头键的KeyUp事件。
通过重写ProcessCmdKey可以处理较低级别的所有密钥。
如果你想处理一个左箭头键:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Left
Debug.WriteLine("Left")
Return True
Case Else
Return MyBase.ProcessCmdKey(msg, keyData)
End Select
End Function
相关问题
- 1. C#Hook全局键盘事件 - .net 4.0
- 2. 键盘事件
- 3. 键盘事件
- 4. 键盘事件
- 5. 触发键盘事件,WebKit的键盘不会触发事件
- 6. Godot键盘事件
- 7. GLUT键盘事件
- 8. Flex键盘事件
- 9. As3键盘事件
- 10. .NET Winform键盘控件
- 11. 硬件键盘事件
- 12. wpf listbox datatemplate中的键盘事件
- 13. wxpython捕获wx.Frame中的键盘事件
- 14. 阅读Android WebView中的键盘事件
- 15. Java Swing中的键盘“保持”事件?
- 16. QMainWindow中的键盘事件QMainWindow
- 17. android软键盘事件
- 18. 接收iPhone键盘事件
- 19. jQuery键盘延迟事件
- 20. 绑定javascript键盘事件
- 21. 高级Python键盘事件?
- 22. Actionscript 3 Flash键盘事件
- 23. UICatalog和键盘事件
- 24. 模拟键盘事件
- 25. 键盘事件教程C#
- 26. 发布键盘事件
- 27. Javascript几个键盘事件
- 28. 键盘事件目标C
- 29. iphone键盘触摸事件
- 30. p:键盘ajax事件