這兩個事件是相同的還是有差異,我們應該注意編碼鍵盤按下時?在.Net中,鍵盤,鍵盤或鍵盤上的按鍵編碼有什麼更好的選擇?
回答
我在這裏的答案只是基於不同的應用程序的實驗,而不是編程本身。
處理keydown。讓它成爲你邏輯的觸發器。這就是用戶期望的基於與其他應用程序交互的基礎。
例如,在記事本中嘗試一個按鍵,然後您會看到DOWN觸發記事本中的反應。它不等待UP。
一旦用戶按下按鍵,就會發生按鍵事件,按下按鍵後會釋放按鍵時發生按鍵事件。
所以,如果你使用鍵向上的事件,並且用戶按下一個鍵並持續5秒,那麼在他們放棄它之前什麼都不會發生。
(注:我什麼都不知道.NET,我只是用「鍵上」和「按下按鍵」在其它庫的事件。)
這不是真的「,這是一個更好的選擇。淨。」你真的不得不考慮你想如何迴應按鍵。如果你想知道某人在文本框中輸入的內容,通常最好等到他們發佈之後再嘗試確定他們在做什麼。但是,如果它像一個遊戲,你想要響應它被按下的瞬間,那麼你會比使用KeyDown。
KeyDown是鍵被按下的時刻。 KeyUp在密鑰被釋放後。
無論是.Net還是不重要,它都很重要用戶的期望。 Keydown是迴應四個方向鍵的好時機。字符輸入是響應可見字符輸入的好時機。 Keyup通常是迴應任何對文檔有影響的動作的好時機,但如果用戶希望立即生效,那麼keydown會更好。
有一點要考慮的是我已經與前一個問題:
如果您處理關鍵下來的東西,改變窗口或改變UI組件的焦點,那麼新的UI元素有時得到關鍵事件。
這發生在我上一份工作上。我們對一個表單進行了控制,在關鍵時刻,它會加載一個新表單。如果新表單加載速度足夠快,那麼在用戶釋放密鑰之前新表單將獲得焦點,並且新表單將獲得關鍵事件。我們對第二種形式的UI控件進行了反應,它有時會被無意中觸發。
故事的寓意是:保持一致。選擇一個或另一個,堅持下去:)
另一件要考慮的事情:當拿着修飾符時,使用keydown是很重要的。我通常使用keydown來設置變量,如ctrlPressed=true
;然後使用鍵盤來取消該變量ctrlPressed=false;
我通常對所有字母數字字符使用keyPressed。
這種類型的系統允許您激活之類的東西CTRL + K + C ALA的Visual Studio
我的allmost八方通使用的KeyDown,因爲這樣我可以用e.Handled = True和停止該KeyEvent從文本框出行如果我想要的話,可以放在容器中,並放在事件中。您也可以在KeyUp中使用e.Handled,但隨後會「延遲」,因爲用戶輸入的密鑰將顯示在文本框中,如果您想要停止用戶輸入數字,則必須手動將其取出文本框。
- 1. 禁用鍵盤上的國際鍵盤選擇按鈕
- 2. Android鍵盤鍵碼
- 3. 在鍵盤上有MS Access按鍵
- 4. 鍵盤/鍵盤鍵的gtk keyval?
- 5. 區分鍵盤上的鍵盤
- 6. 按了什麼鍵?鍵盤掛鉤
- 7. iOS Webapp - 按什麼鍵盤鍵?
- 8. 按鍵的鍵盤腳本
- 9. 在鍵盤上躲什麼
- 10. 在不按鍵盤按鍵的情況下觸發鍵盤按鍵事件
- 11. 鍵盤輸入與可編程鍵盤
- 12. 如何在不使用鍵盤的情況下按下鍵盤上的按鍵?
- 13. 按鍵導航,按鍵盤上的事件輸入鍵盤上的輸入
- 14. 「隱藏鍵盤按鈕」的鍵碼
- 15. 禁用鍵盤上的鍵
- 16. 數字鍵盤中的箭頭鍵的鍵碼是什麼?
- 17. 數字鍵盤+鍵選擇在Visual Studio
- 18. 鍵盤與中間的數字鍵盤?
- 19. 更改USB鍵盤的按鍵
- 20. 如何使用鍵盤上的ENTER鍵選擇單選按鈕
- 21. 爲什麼我的鍵盤掛鉤多次接收到相同的鍵盤鍵和鍵盤鍵事件?
- 22. 如何按德語鍵盤上的「/」鍵?
- 23. 重命名軟鍵盤上的按鍵
- 24. 仿真鍵盤上的按鍵?
- 25. jquery禁用鍵盤按鍵
- 26. 鍵盤按鍵捕獲
- 27. 鍵盤按鍵本地化
- 28. Android - 獲取鍵盤按鍵
- 29. 在虛擬鍵盤上檢測按鍵
- 30. 在黑莓鍵盤上捕獲按鍵
你有你的鑰匙向上/鍵倒退。 – 2008-11-04 03:11:31
哦,對,修好了,謝謝! – 2008-11-04 03:12:42