{
this.KeyPreview = true; // 獲取或設置一個值,該值指示在將鍵事件傳遞到具有焦點的控件前,窗體是否將接收此鍵事件。
}
private void FrmMain_KeyUp( object sender, KeyEventArgs e)
{
if (Keys.F1 == e.KeyCode)
{
//MessageBox.Show("您所按動的鍵是:" + e.KeyCode.ToString());
Help.ShowHelp(this,@"C:\Users\HongYe\Desktop\RevitAPI.chm");
}
}
鍵盤事件是在用戶按下鍵盤上的一個鍵的時候發生的,可分為兩類。第一類是KeyPress事件,當按下的鍵表示的是一個ASCII字符的時候就會觸發這類事件,可通過他的KeyPressEventArgs類型參數的屬性KeyChar來確定按下的鍵的ASCII。使用KeyPress時間無法判斷是否按下了修改鍵(Shift,Alt和Ctrl),為了判斷這些動作,就要處理KeyUp 或KeyDown事件,這些時間組成了第二類事件。該類事件有一個KeyEventsArgs類型參數,通過該參數可以測試是否按下了一些修改鍵。
1. KeyPressEventArgs類的主屬性(KeyPress事件的一個參數類型)
(1).Handle屬性:用來獲取或設置一個值,該值指示是否處理過KeyPress事件。
(2).KeyChar屬性:用來獲取按下的鍵對應的字符,通常是該鍵的ASCII瑪(返回的是鍵盤的值,如按‘K‘返回就是K)。
2.KeyEventArgs類的主屬性(KeyUp和KeyDown事件的一個參數)
(1).Alt屬性:用來獲取一個值,該值提示是否曾按下了Alt鍵
(2).Control屬性:用來獲取一個值,該值提示是否曾按下了Crtl鍵
(3).Shift屬性:用來獲取一個值,該值提示是否曾按下了Shift鍵
(4).Handle屬性:用來獲取一個值,該值提示是否曾處理過此事件
(5).KeyCode屬性:以Keys枚舉值返回鍵盤鍵的鍵碼,該屬性不包含修改鍵信息,用於測試指定的鍵盤鍵
(6).KeyData屬性:以Keys枚舉值返回鍵盤鍵的鍵碼,該屬性包含修改鍵信息,用於判斷按下鍵的所有信息(可返回組合鍵)
(7).KeyValue屬性:以整數形式返回鍵碼,而不是Keys枚舉類型值。用於獲得所按下鍵的數字表示
(8).Modifiers屬性:以Keys枚舉值返回所按下的修改鍵,僅判斷修改鍵的信息
3.如何在C#程序中定義這些事件:
C#中描述"KeyDown"、"KeyUp"的事件的Delegate是"KeyEventHandler"。而描述"KeyPress"所用的Delegate是"KeyPressEventHandler"。這二個Delegate都被封裝在命名空"Syetem.Windows.Froms"中。為"KeyDown"、"KeyUp"的事件提供數據的類是"KeyEventArgs"。而為"KeyPress"事件提供數據的類是"KeyPressEventArgs"。同樣這二者也被封裝在命名空間"Syetem.Windows.Froms"中。
在C#程序定義"KeyDown"、"KeyUp"事件的語法如下:
"組件名稱"."事件名稱"+= new Syetem.Windows.Froms. KeyEventHandler("事件名稱");
下面是程序中具體實現代碼:
button1. KeyUp += new Syetem.Windows.Froms. KeyEventHandler(button1_KUp);
下面是響應上面事件的基本結構。
private void button1_KUp ( object sender , Syetem.Windows.Froms. KeyEventArgs e )
{
此處加入響應此事件的代碼
}
在C#程序定義"KeyPress"事件的語法如下:
"組件名稱"."事件名稱"+= new Syetem.Windows.Froms. KeyPressEventHandler("事件名稱");
下面是程序中具體實現代碼:
button1. KeyPress += new Syetem.Windows.Froms. KeyPressEventArgs(button1_KPress);
在完成了事件的定義以后,就要在程序中加入響應此事件的代碼,否則程序編譯的時候會報錯。下面是響應上面事件的基本結構。
private void button1_KPress ( object sender , Syetem.Windows.Froms. KeyPressEventArgs e )
{
此處加入響應此事件的代碼
}
注釋:程序中出現的"button1"是定義的一個按鈕組件。
例子:
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
MessageBox.Show("您所按動的鍵是:"+e.KeyCode.ToString());
}
url:http://greatverve.cnblogs.com/archive/2012/05/15/KeyCode.html