3

我正在使用一个事件PreviewKeyDown,并将该键添加到一个键列表中,如下例所示:

    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”。很快,如果我尝试将此字符串转换为整数,它会给出异常。

现在,我该如何处理?

4

2 回答 2

3

您可以使用KeyInterop.VirtualKeyFromKey方法将 WPF 密钥转换为 Win32 虚拟密钥。它将返回所按下键的整数值。

例如,如果您按下T键,它将返回 84。

于 2012-09-06T21:34:37.277 回答
0

如果您确定您只处理数字键,那么以下应该可以工作(我对 Windows.Input 不太熟悉 - 那是 WPF 的东西吗?);

int Number = -1;

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

对列表中的其他键重复此操作。

于 2012-09-06T21:53:53.377 回答