C 中處理和鍵盤相關的事件

2021-09-05 22:34:52 字數 2583 閱讀 8627

在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的**如下:

1

using

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...