鍵釋放時觸發按鍵事件。這適用於普通按鍵,如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. r.interactor中的鍵盤事件
- 6. 觸發鍵盤事件,WebKit的鍵盤不會觸發事件
- 7. As3鍵盤事件
- 8. 鍵盤android事件?
- 9. AS3鍵盤事件
- 10. Godot鍵盤事件
- 11. Flex鍵盤事件
- 12. 鍵盤事件java
- 13. GLUT鍵盤事件
- 14. .NET Winform鍵盤控件
- 15. 硬件鍵盤事件
- 16. wpf listbox datatemplate中的鍵盤事件
- 17. Python中的鍵盤事件處理?
- 18. Winforms中的鍵盤事件傳播
- 19. OpenGL中的鍵盤事件與穀物
- 20. Java Swing中的鍵盤「保持」事件?
- 21. QMainWindow中的鍵盤事件QMainWindow
- 22. wxpython捕獲wx.Frame中的鍵盤事件
- 23. 閱讀Android WebView中的鍵盤事件
- 24. 模擬Android中的鍵盤事件
- 25. UICatalog和鍵盤事件
- 26. Actionscript 3 Flash鍵盤事件
- 27. 鍵盤「滑動」Javascript事件
- 28. Hook Linux鍵盤事件
- 29. Javascript幾個鍵盤事件
- 30. 什麼是鍵盤事件