从按键获取数字为Int

时间:2011-09-30 03:11:13

标签: c# .net keypress keydown

我正在尝试从键盘上的数字键中获取一个整数。例如,我想按5并获得int 5。

我正在使用KeyDown事件并具有以下内容:

    private void listBox1_KeyDown(object sender, KeyEventArgs e)
    {
            int rating = (int)e.KeyValue;
    }

我得到的输出是50-60范围内的整数。我也尝试过使用e.KeyData和e.KeyCode而没有任何运气。

任何对此的帮助都会受到赞赏,我觉得这很简单,我忽视或不理解。

2 个答案:

答案 0 :(得分:3)

e.KeyValue返回按下的键的字符代码。

要获得实际数字,您可以进行一些字符减法,即

int value = 0;
if (e.KeyValue >= 48 && e.KeyValue <= 57)
   value = e.KeyValue - 48;

注意:如果您想知道48和57来自哪里,您可能需要查看ASCII表:http://www.asciitable.com/index/asciifull.gif

答案 1 :(得分:1)

这有效....有点hacky ......

Convert.ToInt32(e.KeyData.ToString()).Replace("D",""));