在c#中和鍵盤相關的事件相對比較少,大致就三種:"keydown"、"keyup"和"keypress"。
(1).如何在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"是定義的乙個按鈕元件。
和鍵盤相關的典型問題無非就是判定到底是哪個按鍵被按動。通過上面的三個事件都可以完成。並且在"keyeventargs"類中通過了乙個屬 性"keycode",可以用他來讀取當前按鍵。所以就在"keyup"或者"keydown"事件中處理這個問題。根據上面這些知識,可以得到用c#編 寫讀取讀取按鍵的程式**,下面就是此**(key.cs)和此**執行後的介面:
圖02:用c#讀取鍵盤按鍵的程式執行介面
key.cs的**如下:
1using
system ;
2using
system.drawing ;
3using
system.collections ;
4using
system.componentmodel ;
5using
system.windows.forms ;
6using
system.data ;
7public
class
form1 : form816
protected
override
void
dispose (
bool
disposing )
1725}26
base
.dispose ( disposing ) ;27}
28private
void
initializecomponent ( )
2938
static
void
main ( )
3942
file:
//顯示你所按動的按鍵名稱
43private
void
form1_keyup (
object
sender , keyeventargs e )
4448}49
5051
上面都是網上找的,我看了之後,自己試了很多次,按鍵沒反應......
52後來才在csdn上找到,原來 要先把對應的form 的keypreview屬性設為true
53暈..........................
5455
5657
5859
6061
6263
6465
6667
6869
7071
7273
c# codethis.keypreview
=true
;this
.keydown
+=newkeyeventhandler(frmnewbook_keydown);
7475
}voidfrmnewbook_keydown(objectsender, keyeventargs e) 76
79}
8081
深入分析C 中處理和鍵盤相關事件的詳解
1 如何在c 程式中定義這些事件 c 中描述 keydown keyup 的事件的delegate是 keyeventhandler 而描述 keypress 所用的 delegate是 keypresseventhandler 這二個delegate都被封裝在命名空 間 syetem.window...
網頁中的鍵盤事件處理
一 網頁鍵盤事件的偵聽捕獲和處理 對網頁中的鍵盤事件進行偵聽 捕獲和處理時,主要採用onkeypress onkeydown onkeyup這三個事件來進行。事件名稱 說明onkeydown 1 在使用者按下任何鍵盤鍵 包括系統按鈕,如箭頭鍵和功能鍵 時發生。2 字母鍵均視為大寫。3 區分主副鍵盤的...
C 中的事件和事件處理
c 中的事件,我覺得和mfc的訊息作用在某些方面是差不多的。這個專案中用到的需求是兩個類之間的資料互動,首先肯定是分為乙個觸發事件的類,乙個處理事件的類。1 首先需要在所有類的外部為事件定義乙個公共訪問型別的 該 為多重 所以 定義方法標識的返回為void型別。一般我們這麼定義 public voi...