2016-06-10 30 views
-1

我需要以下关键中的关键代码实际上我想提出限制我的记录除了粘键和功能键以外的键码? C#

1 CTRL
2 ALT
3空间
4粘滞键如Home和End等
5个功能键,如F1 - F12
6 Capslock,scroll,numlock,windows
7点,:,/,\,} {,[] | 〜``

提示:其实我希望只使用AZ,0-9和特殊CHARECTERS只在我的应用程序空格键

的例子是,对于JS

if ((vkCode > 48 && vkCode < 91) || (vkCode > 93 && vkCode < 112) || (vkCode > 145) || (vkCode == 32)) 
      { 


     } 

还告诉我当我按下数字键它得到具有d 值eaxmple

按下4 --- D4

PRESSING 9 ---- D9

+0

如果您告诉我这个范围更好 –

回答

0

有在.NET框架枚举,列出所有的键看Keys

,如果你正在处理的关键事件,然后它将使用KeyEventArgs

这将在给你活动的彻底破裂键盘

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; 
    } 
} 
+0

良好的尝试,但在下面满意每一个 –

+0

关掉你的大写锁定,其认为不礼貌 – MikeT

2

这是人们需要

(Keys)vkCode 

A-Z

(Keys)vkCode >= Keys.A && (Keys)vkCode <= Keys.Z) 

TOP NUM 0-9

(vkCode <= 57 && vkCode >= 48) 

NUMPAD NUM

(vkCode <= 105 && vkCode >= 96) 

SPACE

(vkCode == 32) 

ENTER

(vkCode == 13)