1. 程式人生 > >C# 鍵盤響應事件及鍵值對照表

C# 鍵盤響應事件及鍵值對照表

鍵盤響應事件總結

鍵盤響應事件是在使用者按下某個鍵後觸發的事件,可以是任意操作,但不是任意鍵都可以被捕獲的

原型:public event KeyPressEventHandler KeyPress
MSDN說明:鍵事件按以下順序發生:
1.KeyDown
2.KeyPress
3.KeyUp
KeyPress 事件不能由非字元鍵引發;但是非字元鍵能夠引發 KeyDown 和 KeyUp事件。
使用 KeyChar 屬性取樣執行時的鍵擊,以及使用或修改常用鍵擊的一個子集。
若要僅在窗體級別處理鍵盤事件而不允許其他控制元件接收鍵盤事件,請將窗體的 KeyPress 事件處理方法中的KeyPressEventArgs.Handled 屬性設定為 true。

MSDN

下面的程式碼示例使用 KeyPress事件來禁止向控制元件輸入字元。

 // Boolean flag used to determine when a character other than a number is entered.
        private bool nonNumberEntered = false;

        // Handle the KeyDown event to determine the type of character entered into the control.
        private void textBox1_KeyDown
(object sender, System.Windows.Forms.KeyEventArgs e) { // Initialize the flag to false. nonNumberEntered = false; // Determine whether the keystroke is a number from the top of the keyboard. if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { // Determine whether the keystroke is a number from the keypad.
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { // Determine whether the keystroke is a backspace. if(e.KeyCode != Keys.Back) { // A non-numerical keystroke was pressed. // Set the flag to true and evaluate in KeyPress event. nonNumberEntered = true; } } } //If shift key was pressed, it's not a number. if (Control.ModifierKeys == Keys.Shift) { nonNumberEntered = true; } } // This event occurs after the KeyDown event and can be used to prevent // characters from entering the control. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // Check for the flag being set in the KeyDown event. if (nonNumberEntered == true) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; } }

鍵值對照表

虛擬鍵值表
虛擬鍵 十六進位制值 十進位制值 相應鍵盤或滑鼠鍵
VK_LBUTTON 1 1 滑鼠左鍵
VK_RBUTTON 2 2 滑鼠右鍵
VK_CANCEL 3 3 Ctrl-Break鍵
VK_MBUTTON 4 4 滑鼠中鍵
VK_BACK 8 8 Backspace鍵
VK_TAB 9 9 Tab鍵
VK_CLEAR 0C 12 Clear鍵
VK_RETURN 0D 13 Enter鍵
VK_SHIFT 10 16 Shift鍵
VK_CONTROL 11 17 Ctrl鍵
VK_MENU 12 18 Alt鍵
VK_PAUSE 13 19 Pause鍵
VK_CAPITAL 14 20 Caps Lock鍵
VK_ESCAPE 1B 27 Esc鍵
VK_SPACE 20 32 Space鍵
VK_PRIOR 21 33 Page Up鍵
VK_NEXT 22 34 Page Down鍵
VK_END 23 35 End鍵
VK_HOME 24 36 Home鍵
VK_LEFT 25 37 ←鍵
VK_UP 26 38 ↑鍵
VK_RIGHT 27 39 →鍵
VK_DOWN 28 40 ↓鍵
VK_SELECT 29 41 Select鍵
VK_PRINT 2A 42 Print鍵
VK_EXECUTE 2B 43 Execute鍵
VK_SNAPSHOT 2C 44 Print Screen鍵
VK_INSERT 2D 45 Ins鍵
VK_DELETE 2E 46 Del鍵
VK_HELP 2F 47 Help鍵
VK_0 30 48 0鍵
VK_1 31 49 1鍵
VK_2 32 50 2鍵
VK_3 33 51 3鍵
VK_4 34 52 4鍵
VK_5 35 53 5鍵
VK_6 36 54 6鍵
VK_7 37 55 7鍵
VK_8 38 56 8鍵
VK_9 39 57 9鍵
VK_A 41 65 A鍵
VK_B 42 66 B鍵
VK_C 43 67 C鍵
VK_D 44 68 D鍵
VK_E 45 69 E鍵
VK_F 46 70 F鍵
VK_G 47 71 G鍵
VK_H 48 72 H鍵
VK_I 49 73 I鍵
VK_J 4A 74 J鍵
VK_K 4B 75 K鍵
VK_L 4C 76 L鍵
VK_M 4D 77 M鍵
VK_N 4E 78 N鍵
VK_O 4F 79 O鍵
VK_P 50 80 P鍵
VK_Q 51 81 Q鍵
VK_R 52 82 R鍵
VK_S 53 83 S鍵
VK_T 54 84 T鍵
VK_U 55 85 U鍵
VK_V 56 86 V鍵
VK_W 57 87 W鍵
VK_X 58 88 X鍵
VK_Y 59 89 Y鍵
VK_Z 5A 90 Z鍵
VK_LWIN 5B 91 左Windows鍵
VK_RWIN 5C 92 右Windows鍵
VK_APPS 5D 93 應用程式鍵
VK_SLEEP 5F 95 休眠鍵
VK_NUMPAD0 60 96 小數字鍵盤0鍵
VK_NUMPAD1 61 97 小數字鍵盤1鍵
VK_NUMPAD2 62 98 小數字鍵盤2鍵
VK_NUMPAD3 63 99 小數字鍵盤3鍵
VK_NUMPAD4 64 100 小數字鍵盤4鍵
VK_NUMPAD5 65 101 小數字鍵盤5鍵
VK_NUMPAD6 66 102 小數字鍵盤6鍵
VK_NUMPAD7 67 103 小數字鍵盤7鍵
VK_NUMPAD8 68 104 小數字鍵盤8鍵
VK_NUMPAD9 69 105 小數字鍵盤9鍵
VK_MULTIPLY 6A 106 乘號鍵
VK_ADD 6B 107 加號鍵
VK_SEPARATOR 6C 108 分割鍵
VK_SUBSTRACT 6D 109 減號鍵
VK_DECIMAL 6E 110 小數點鍵
VK_DIVIDE 6F 111 除號鍵
VK_F1 70 12 F1鍵
VK_F2 71 113 F2鍵
VK_F3 72 114 F3鍵
VK_F4 73 115 F4鍵
VK_F5 74 116 F5鍵
VK_F6 75 117 F6鍵
VK_F7 76 118 F7鍵
VK_F8 77 119 F8鍵
VK_F9 78 120 F9鍵
VK_F10 79 121 F10鍵
VK_F11 7A 122 F11鍵
VK_F12 7B 123 F12鍵
VK_F13 7C 124 F13鍵
VK_F14 7D 125 F14鍵
VK_F15 7E 126 F15鍵
VK_F16 7F 127 F16鍵
VK_F17 80 128 F17鍵
VK_F18 81 129 F18鍵
VK_F19 82 130 F19鍵
VK_F20 83 131 F20鍵
VK_F21 84 132 F21鍵
VK_F22 85 133 F22鍵
VK_F23 86 134 F23鍵
VK_F24 87 135 F24鍵
VK_NUMLOCK 90 144 Num Lock鍵
VK_SCROLL 91 45 Scroll Lock鍵
VK_LSHIFT A0 160 左Shift鍵
VK_RSHIFT A1 161 右Shift鍵
VK_LCONTROL A2 162 左Ctrl鍵
VK_RCONTROL A3 163 右Ctrl鍵
VK_LMENU A4 164 左Alt鍵
VK_RMENU A5 165 右Alt鍵

PS:以上表格的匯入如果使用Makedown語法顯然不太合適,這裡我使用表格自動轉換HTML語法的網站,非常方便,連結如下:線上HTML格式轉換