keydown:用戶在鍵盤上按下某按鍵是發生。一直按着某按鍵則會不斷觸發(opera瀏覽器除外)。
keypress:用戶按下一個按鍵,併產生一個字符時發生(也就是相似shift、alt、ctrl之類的鍵,它不產生字符,是不會觸發press的。用戶按了一個能在屏幕上輸出字符的按鍵keypress事件纔會觸發)。一直按着某按鍵則會不斷觸發。
keyup:用戶釋放某一個按鍵是觸發。html
一、KeyPress主要用來捕獲數字(注意:包括Shift+數字的符號)、字母(注意:包括大小寫)、小鍵盤等,除了F1-十二、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵外的ANSI字符。
KeyDown 和 KeyUP 事件過程一般能夠捕獲鍵盤除了PrScrn全部按鍵(這裏不討論特殊鍵盤的特殊鍵
二、KeyPress 只能捕獲單個字符
KeyDown 和KeyUp 能夠捕獲組合鍵。
三、KeyPress 不顯示鍵盤的物理狀態(SHIFT鍵),而只是傳遞一個字符。KeyPress 將每一個字符的大、小寫形式做爲不一樣的鍵代碼解釋,即做爲兩種不一樣的字符。
KeyDown 和KeyUp 不能判斷鍵值字母的大小。KeyDown 和 KeyUp 用兩種參數解釋每一個字符的大寫形式和小寫形式:keycode — 顯示物理的鍵(將 A 和 a 做爲同一個鍵返回)和 shift —指示 shift + key 鍵的狀態並且返回 A 或 a 其中之一。
五、KeyPress 不區分小鍵盤和主鍵盤的數字字符。
KeyDown 和KeyUp 區分小鍵盤和主鍵盤的數字字符。
六、KeyDown、KeyUp事件是當按下 ( KeyDown ) 或鬆開 ( KeyUp ) 一個鍵時發生的。
因爲通常按下鍵盤的鍵每每會當即放開(這和鼠標不一樣),因此這兩個事件使用哪一個差異不大。
並且,up和其餘二者還有一個區別:要判斷key修改後的狀態必須用up。瀏覽器
補充:code
TextChanged:
文本更改時觸發,分在程序裏更改,用戶使用鍵盤更改,不管那中更改,都會觸發TextChanged事件 htm
KeyDown:
也是在文本更改時觸發,但只有用戶使用鍵盤更改時才觸發,在程序裏更改不觸發 blog
有些控件將會在 KeyDown 上處理某些擊鍵。例如,RichTextBox 在調用 KeyPress 前處理 Enter 鍵。在這種狀況下,您沒法取消 KeyPress 事件,而是必須從 KeyDown 取消擊鍵。事件
參考文章:get