KeyValue與KeyData與KeyCode區別(轉)


KeyValue與KeyData與KeyCode區別(轉)

KeyPress事件
KeyPressEventArgs參數

Handled /是否處理過KeyPress事件
KeyChar //按下的鍵對應的字符

如果I,則keychar為i,如果shift+i,則keychar為I。
如果是Ctrl+I,或ALt+I,根本不會得到一個keypress事件,因為他們是特殊的鍵序列,並非通過KeyPress發送。
需要KeyDown

KeyDown
KeyEventArgs參數
   Alt 獲取一個值,該值指示是否曾按下 Alt 鍵。
   Control 獲取一個值,該值指示是否曾按下 Ctrl 鍵。
   Handled 獲取或設置一個值,該值指示是否處理過此事件。
   KeyCode 獲取 KeyDown 或 KeyUp 事件的鍵盤代碼。
   KeyData 獲取 KeyDown 或 KeyUp 事件的鍵數據。
   KeyValue 獲取 KeyDown 或 KeyUp 事件的鍵盤值。
   Modifiers 獲取 KeyDown 或 KeyUp 事件的修飾符標志。這些標志指示按下的 Ctrl、Shift 和 Alt 鍵的組合。
   Shift 獲取一個值,該值指示是否曾按下 Shift 鍵。
SuppressKeyPress 獲取或設置一個值,該值指示鍵事件是否應傳遞到基礎控件。


如果同時按下了Ctrl+Shift+I
KeyData   Keys.Ctrl+Keys。Shift+Keys。I
KeyCode Keys。I
Modifiers Keys。Ctrl+Keys。Shift
Alt false
Ctrl true
Shift true
KeyValue 73
KeyChar 不可用

盡管我們處理了KeyDown來獲得特殊的字符,但是有些特殊字符(比如箭頭鍵)在默認的情況下並不傳送給控件。為了啟用他們,自定義控件可以重寫來自基類的IsInputKey方法


如果想在鍵盤事件之外獲悉修飾鍵的狀態,可以通過Control類的靜態屬性ModifierKeys來訪問這類信息。

void MyCon-Click(object sender,EventArgs e)
{
if(Control.ModifierKeys==Keys.Control)
{
}
}
檢查在鼠標點擊事件中,Ctrl鍵是否是唯一被按下的修飾鍵。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM