深入分析C 中處理和鍵盤相關事件的詳解

2022-10-06 16:09:13 字數 2188 閱讀 9173

(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 += mqlbgksnew 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"是定義的乙個按鈕元件。

((2).和鍵盤相關事件中的典型問題處理辦法:

和鍵盤相關的典型問題無非就是判定到底是哪個按鍵被按動。通過上面的三個事件都可以完成。並且在"keyeventargs"類中通過了乙個屬 性"keycode",可以用他來讀取當前按鍵。所以就在"keyup"或者"keydown"事件中處理這個問題。根據上面這些知識,可以得到用c#程式設計客棧編 寫讀取讀取按鍵的程式**,下面就是此**(key.cs)和此**執行後的介面: 

圖02:用c#讀取鍵盤按鍵的程式執行介面

key.cs的**如下:

複製** **如下:

**  using system ;

using system.drawing ;

using system.collections ;

using system.componentmodel ;

using system.windows.forms ;

using system.data ;

public class form1 : form

protected ovemqlbgksrride void dispose ( bool disposing )  }

base.dispose ( disposing ) ;

} private void initializecomponent (程式設計客棧 )

static void main ( )

file://顯示你所按動的按鍵名稱

private void form1_keyup ( object sender , keyeventargs e )  }

上面都是網上找的,我看了之後,自己試了很多次,按鍵沒反應......

後來才在書上找到,原來 要先把對應的form 的keypreview屬性設為true

c# codethis.keypreview=true;this.keydown+=newkeyeventhandler(frmnewbook_keydown);

}voidfrmnewbook_keydown(objectsender, keyeventargs e)

}本文位址:

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

在c 中和鍵盤相關的事件相對比較少,大致就三種 keydown keyup 和 keypress 1 如何在c 程式中定義這些事件 c 中描述 keydown keyup 的事件的delegate是 keyeventhandler 而描述 keypress 所用的 delegate是 keypres...

深入分析C 中deque的使用

deque簡介 deque 即雙端佇列。deque,全名double ended queue 是一種具有佇列和棧的性質的資料結構。雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列是限定插入和刪除操作在表的兩端進行的線性表。這兩端分別稱做端點1和端點2。也可像棧一樣,可以用...

深入分析C 中deque的使用

本篇文章介紹了,深入分析c 中deque的使用。需要的朋友參考下 首先,當考慮到記憶體分配和執行效能的時候,使用std deque要比std vector好。deque和vector一樣都是標準模板庫中的內容,deque是雙端佇列,在介面上和vector非常相似,在許多操作的地方可以直接替換。假如讀...