在鍵盤按下鍵然後釋放的過程中有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);
}