2012-09-06 28 views
3

我使用的是事件PreviewKeyDown,和我將重點名單的關鍵,如下面的例子:如何將System.Windows.Input.Key轉換爲數字?

List<Key> keys = new List<Key>(); 
    private void MDIChildBackground_PreviewKeyDown(object sender, KeyEventArgs e) 
    {   

     keys.Add(e.Key); 
    } 

然後我想採取從列表中的鍵,並轉換爲整數。

實施例:

int number=int.parse(keys[0].ToString()); 

PS:將僅輸入數字

但問題是在轉換爲字符串 因爲當我輸入一(1)在鍵盤和轉換爲字符串 字符串值是「D1」而不是「1」。 很快,如果我嘗試將此字符串轉換爲整數,它將會發生異常。

現在,我該如何處理?

回答

2

您可以使用KeyInterop.VirtualKeyFromKey方法將WPF密鑰轉換爲Win32虛擬密鑰。它將返回按下的鍵的整數值。

例如,如果你打的牛逼鍵將返回84

0

如果你確信你只處理數字鍵,那麼下面應該工作(我不是熟悉Windows.Input - 是WPF的東西?);

int Number = -1; 

if(keys[0] >= Key.D0 && keys[0] <= Key.D9) 
    Number = keys[0] - Key.D0; 

重複列表中的其他鍵。

+0

只要注意到它本質上是L.B答案,但使用正確的命名空間/類型。將更新答案更多closley匹配他的。 –