2011-09-30 60 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",""));