在鍵盤按下鍵然後釋放的過程中有3個事件發生,分別為KeyDown事件、KeyPress事件和KeyUp事件。 KeyDown和KeyUp事件讓應用程序捕捉用戶在鍵盤上按下的特殊鍵或某些特定鍵甚至組合鍵,只有在想要取得按下鍵或特殊鍵的相關信息時,才用到KeyDown和KeyUp事件。下面對KeyDown和KeyUp事件分別進行介紹。
1.KeyDown事件
KeyDown事件在首次按下某個鍵時發生。
示例 KeyDown事件的使用
本示例中,判斷用戶是否按下特殊鍵,如果是,則顯示在窗體的標題欄上。
程序主要代碼如下。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
string G_str_Mode = "";
string G_str_text = e.KeyCode + ":" + e.Modifiers + ":" + e.KeyData + ":" + "(" + e.KeyValue + ")";
if (e.Shift == true)
G_str_Mode = "Shift 鍵被按下";
if (e.Control == true)
G_str_Mode = "Ctrl 鍵被按下";
if (e.Alt == true)
G_str_Mode = "Alt 鍵被按下";
this.Text = G_str_text + G_str_Mode;
}
注意:上面的代碼中,KeyDown事件取得了一個KeyEventArgs對象e,並返回相關的按鍵信息,KeyEventArgs參數提供數個屬性值,這些屬性根據鍵盤上被按下的按鍵返回對應值。KeyEventArgs參數的屬性值如表所示。
表 KeyEventArgs屬性值
屬性值 說明 Control 獲取一個值,該值指示是否曾按下Ctrl鍵 KeyCode 獲取KeyDown或KeyUp事件的鍵盤代碼 KeyData 獲取KeyDown或KeyUp事件的鍵數據 KeyData 獲取KeyDown或KeyUp事件的鍵數據 KeyValue 獲取KeyDown或KeyUp事件的鍵盤值 Modifiers 獲取KeyDown或KeyUp事件的修飾符標志。這些標志指示按下的Ctrl、Shift和Alt鍵的組合 Shift 獲取一個值,該值指示是否曾按下Shift鍵
2.Keyup事件
Keyup事件在釋放鍵時發生。
示例 Keyup事件的使用
本示例實現的是,當程序運行的時候,按完鍵盤後,自動設置窗體的大小。
程序主要代碼如下。
private void frmKeyDownUP_KeyUp(object sender, KeyEventArgs e)
{
this.ClientSize = new System.Drawing.Size(800,100);
}