2011-09-30 72 views
1

我试图从键盘上的数字键中得到一个整数。例如,我想按5并获得INT 5从按键获取编号为Int

我使用KeyDown事件,并具备以下条件:

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

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

任何与此有关的帮助将不胜感激,我觉得这是一种简单的,我可以忽略或不理解的感觉。

+1

这是winforms还是WPF? – x0n

+0

这是使用Winforms。 – Omniabsence

回答

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

+0

e.KeyValue是一个int ... –

+0

你是对的!已经更新了答案以反映这一点。 –

+0

工作就像一个魅力。非常感谢。 – Omniabsence

1

This works .... kinda hacky ...

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