zoukankan      html  css  js  c++  java
  • C#(KeyChar和KeyCord值,KeyDown/KeyPress事件区别)

    1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加;
    2. 添加KeyPress / KeyDown事件:


    KeyPress 和KeyDown 、KeyPress之间的区别:
        1).KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符
            KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)
        2).KeyPress 只能捕获单个字符
            KeyDown 和KeyUp 可以捕获组合键。
        3).KeyPress 可以捕获单个字符的大小写
        4).KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。
        5).KeyPress 不区分小键盘和主键盘的数字字符。
            KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。
        6).其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。


    KeyPress事件:
    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if(e.KeyChar== '1')
        {
            button1.PerformClick();// 执行按钮“1”的操作
            e.Handled = true;
        }
    }
    KeyChar取值:




    另外2个特殊ASCII码:回车=13,换行=10


    KeyDown事件:
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
           Keys key = e.KeyCode;
           if (e.Control!=true)//如果没按Ctrl键
    return;
           switch (key)
           {
                case Keys.NumPad0:
                    //按下小键盘0以后
                    break;
                case Keys.NumPad1:
                    //按下小键盘1以后
                    break;
                case Keys.S:
                    //按下S键以后
                    break;
                case Keys.Up:
                    //按下向下键以后
                    break;
           }
    }
    KeyCode取值(java中应该也是一样的值):
    keycode    8 = BackSpace BackSpace
    keycode    9 = Tab Tab
    keycode   12 = Clear
    keycode   13 = Enter
    keycode   16 = Shift_L
    keycode   17 = Control_L
    keycode   18 = Alt_L
    keycode   19 = Pause
    keycode   20 = Caps_Lock
    keycode   27 = Escape Escape
    keycode   32 = space space
    keycode   33 = Prior
    keycode   34 = Next
    keycode   35 = End
    keycode   36 = Home
    keycode   37 = Left
    keycode   38 = Up
    keycode   39 = Right
    keycode   40 = Down
    keycode   41 = Select
    keycode   42 = Print
    keycode   43 = Execute
    keycode   45 = Insert
    keycode   46 = Delete
    keycode   47 = Help
    keycode   48 = 0 equal braceright
    keycode   49 = 1 exclam onesuperior
    keycode   50 = 2 quotedbl twosuperior
    keycode   51 = 3 section threesuperior
    keycode   52 = 4 dollar
    keycode   53 = 5 percent
    keycode   54 = 6 ampersand
    keycode   55 = 7 slash braceleft
    keycode   56 = 8 parenleft bracketleft
    keycode   57 = 9 parenright bracketright
    keycode   65 = a A
    keycode   66 = b B
    keycode   67 = c C
    keycode   68 = d D
    keycode   69 = e E EuroSign
    keycode   70 = f F
    keycode   71 = g G
    keycode   72 = h H
    keycode   73 = i I
    keycode   74 = j J
    keycode   75 = k K
    keycode   76 = l L
    keycode   77 = m M mu
    keycode   78 = n N
    keycode   79 = o O
    keycode   80 = p P
    keycode   81 = q Q at
    keycode   82 = r R
    keycode   83 = s S
    keycode   84 = t T
    keycode   85 = u U
    keycode   86 = v V
    keycode   87 = w W
    keycode   88 = x X
    keycode   89 = y Y
    keycode   90 = z Z
    keycode   96 = KP_0 KP_0
    keycode   97 = KP_1 KP_1
    keycode   98 = KP_2 KP_2
    keycode   99 = KP_3 KP_3
    keycode 100 = KP_4 KP_4
    keycode 101 = KP_5 KP_5
    keycode 102 = KP_6 KP_6
    keycode 103 = KP_7 KP_7
    keycode 104 = KP_8 KP_8
    keycode 105 = KP_9 KP_9
    keycode 106 = KP_Multiply KP_Multiply
    keycode 107 = KP_Add KP_Add
    keycode 108 = KP_Separator KP_Separator
    keycode 109 = KP_Subtract KP_Subtract
    keycode 110 = KP_Decimal KP_Decimal
    keycode 111 = KP_Divide KP_Divide
    keycode 112 = F1
    keycode 113 = F2
    keycode 114 = F3
    keycode 115 = F4
    keycode 116 = F5
    keycode 117 = F6
    keycode 118 = F7
    keycode 119 = F8
    keycode 120 = F9
    keycode 121 = F10
    keycode 122 = F11
    keycode 123 = F12
    keycode 124 = F13
    keycode 125 = F14
    keycode 126 = F15
    keycode 127 = F16
    keycode 128 = F17
    keycode 129 = F18
    keycode 130 = F19
    keycode 131 = F20
    keycode 132 = F21
    keycode 133 = F22
    keycode 134 = F23
    keycode 135 = F24
    keycode 136 = Num_Lock
    keycode 137 = Scroll_Lock
    keycode 187 = acute grave
    keycode 188 = comma semicolon
    keycode 189 = minus underscore
    keycode 190 = period colon
    keycode 192 = numbersign apostrophe
    keycode 210 = plusminus hyphen macron
    keycode 211 =
    keycode 212 = copyright registered
    keycode 213 = guillemotleft guillemotright
    keycode 214 = masculine ordfeminine
    keycode 215 = ae AE
    keycode 216 = cent yen
    keycode 217 = questiondown exclamdown
    keycode 218 = onequarter onehalf threequarters
    keycode 220 = less greater bar
    keycode 221 = plus asterisk asciitilde
    keycode 227 = multiply division
    keycode 228 = acircumflex Acircumflex
    keycode 229 = ecircumflex Ecircumflex
    keycode 230 = icircumflex Icircumflex
    keycode 231 = ocircumflex Ocircumflex
    keycode 232 = ucircumflex Ucircumflex
    keycode 233 = ntilde Ntilde
    keycode 234 = yacute Yacute
    keycode 235 = oslash Ooblique
    keycode 236 = aring Aring
    keycode 237 = ccedilla Ccedilla
    keycode 238 = thorn THORN
    keycode 239 = eth ETH
    keycode 240 = diaeresis cedilla currency
    keycode 241 = agrave Agrave atilde Atilde
    keycode 242 = egrave Egrave
    keycode 243 = igrave Igrave
    keycode 244 = ograve Ograve otilde Otilde
    keycode 245 = ugrave Ugrave
    keycode 246 = adiaeresis Adiaeresis
    keycode 247 = ediaeresis Ediaeresis
    keycode 248 = idiaeresis Idiaeresis
    keycode 249 = odiaeresis Odiaeresis
    keycode 250 = udiaeresis Udiaeresis
    keycode 251 = ssharp question backslash
    keycode 252 = asciicircum degree
    keycode 253 = 3 sterling
    keycode 254 = Mode_switch


    3. 如何获取键盘按钮的keyChar值(keyCode同理):
    private void Form1_KeyPress(object sender, KeyPressEventArgs e) 

        char Key_Char = e.KeyChar;//判斷按鍵的 Keychar 
        MessageBox.Show(((int)(Key_Char)).ToString());//轉成整數顯示 
    }




    参考 
    http://hi.baidu.com/caixiexin/item/0baac4cab5da91d497445221
    http://blog.csdn.net/kingisking1/article/details/6091289
    http://www.dotblogs.com.tw/chiajung/archive/2009/11/04/11416.aspx

  • 相关阅读:
    VS2005 GridView操作大全(转载)
    架构与模式
    JS全选与取消
    C#查找指定文件夹下指定后缀名的所有文件
    select poll epoll Hello
    scanf() gets() fgets()使用注意事项 Hello
    gtk_init() Hello
    用C实现FFT算法 Hello
    时间相关函数 Hello
    gcc的编译属性和选项 Hello
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9807479.html
Copyright © 2011-2022 走看看