乙個獲有焦點的控制項,當按下任一鍵的時候就會觸發鍵盤事件。如果需要對特殊字元,比如說方向鍵(arrow keys)的鍵盤事件做出響應,通常需要使用keydown或者keyup 事件,而keypress事件並不會觸發。當你需要限制使用者輸入並完成字元驗證的時候通常使用keypress事件。
響應鍵盤的事件(根據事件觸發的先後順序)
keydown在控制項有焦點的情況下按下鍵時發生。事件會提供有關alt鍵、ctrl鍵、shift鍵與鍵盤**(key code)狀態的附加資訊(通過keyeventargs事件引數)。keypress在鍵按下完成且字元出現之前時發生。事件提供有關鍵盤字元的資訊(通過keypresseventargs事件引數)。同時該引數提供了handled屬性,當設定為true時取消字元輸入並禁止顯示在輸入控制項上。
keyup在控制項有焦點的情況下釋放鍵時發生。發生在keypress事件之後,事件也會提供附加資訊(通過keyeventargs事件引數)。
keypress 事件
keydown 事件view plaincopy to clipboardprint?
01.private void textbox1_keypress(object sender, keypresseventargs e)
02.
01.private void textbox1_keydown(object sender, keyeventargs e)
02.
輔助按鍵(ctrl,alt,shift)
注:也可以在任何地方通過 control.modifierkeys屬性檢查輔助按鍵是否按下view plaincopy to clipboardprint?
01.private void textbox1_keydown(object sender, keyeventargs e)
02.
07. //或者通過alt,control,shift屬性檢查
08. if (e.alt)
09.
11.}
窗體攔截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後 這個版本的使用者可能最多了,比較成功.轉...