Windows Forms 鍵盤事件

2021-05-26 16:52:15 字數 1824 閱讀 2651

乙個獲有焦點的控制項,當按下任一鍵的時候就會觸發鍵盤事件。如果需要對特殊字元,比如說方向鍵(arrow keys)的鍵盤事件做出響應,通常需要使用keydown或者keyup 事件,而keypress事件並不會觸發。當你需要限制使用者輸入並完成字元驗證的時候通常使用keypress事件。

響應鍵盤的事件(根據事件觸發的先後順序)

keydown在控制項有焦點的情況下按下鍵時發生。事件會提供有關alt鍵、ctrl鍵、shift鍵與鍵盤**(key code)狀態的附加資訊(通過keyeventargs事件引數)。

keypress在鍵按下完成且字元出現之前時發生。事件提供有關鍵盤字元的資訊(通過keypresseventargs事件引數)。同時該引數提供了handled屬性,當設定為true時取消字元輸入並禁止顯示在輸入控制項上。

keyup在控制項有焦點的情況下釋放鍵時發生。發生在keypress事件之後,事件也會提供附加資訊(通過keyeventargs事件引數)。

keypress 事件

view plaincopy to clipboardprint?

01.private void textbox1_keypress(object sender, keypresseventargs e)

02.

keydown 事件

01.private void textbox1_keydown(object sender, keyeventargs e)  

02.

輔助按鍵(ctrl,alt,shift)

view plaincopy to clipboardprint?

01.private void textbox1_keydown(object sender, keyeventargs e)

02.

07. //或者通過alt,control,shift屬性檢查

08. if (e.alt)

09.

11.}

注:也可以在任何地方通過 control.modifierkeys屬性檢查輔助按鍵是否按下

窗體攔截keypress事件

form提供了乙個keypreview屬性,如果設定為true,窗體會在擁有焦點的控制項之前接收到keypress事件。在處理form的keypress事件時,如果設定keypresseventargs.handled屬性為true,擁有焦點的控制項不會接收到對應的keypress 事件。(如果不設定該屬性為true,擁有焦點的控制項會在form之後接收到keypress事件)如果在keypresss事件中設定handled屬性為true,擁有焦點的控制項仍然會接收keydown與keyup事件。

view plaincopy to clipboardprint?

01.//注:首先要設定form的keypreview屬性為true

02.//在窗體級對輸入字元進行攔截

03.protected override void onkeypress(keypresseventargs e)

04.

10. base.onkeypress(e);

11.}

鍵盤快捷鍵二三事

你可能會注意到這麼一件事兒 在windows系統裡的鍵盤快捷鍵裡,沒有ctrl alt這一修改快捷鍵。這是為啥?如果需要組合按鍵,則一般會使用ctrl shift。因為ctrl alt在很多鍵盤的設計中有特殊的含義。同時,ctrl alt組合按鍵也稱作altgr,因為它實際會扮演乙個輔助shift按...

WPF引入WindowsForms控制項示例

環境 1 windowsxp with sp3 2 vs2008 with sp1 正文 step1 在現有工程中引入windows forms 滑鼠右鍵 references 選擇 add reference net 標籤頁 加入 windowsformsintegration 和 system....

《Windows Forms程式設計》,真正的好書!

windows forms程式設計 美 chris sells,justin gehtland著 張玉亭 楊濤譯,這是關於visual basic net的書。關於vb,在大學時看過一本 使用者友好基礎 當時受益頗多,後面看的印象都不是很深,用到vb5.0後 這個版本的使用者可能最多了,比較成功.轉...