我正在使用事件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”。 很快,如果我尝试将此字符串转换为整数,它将给出异常。
现在,我该如何处理?
答案 0 :(得分:2)
您可以使用KeyInterop.VirtualKeyFromKey方法将WPF密钥转换为Win32虚拟密钥。它将返回按下的键的整数值。
例如,如果你点击 T 键,它将返回84.
答案 1 :(得分:0)
如果您确定自己只处理数字键,那么以下内容应该有效(我不熟悉Windows.Input - 那是WPF的东西吗?);
int Number = -1;
if( keys[0] >= Key.D0 && keys[0] <= Key.D9 )
Number = keys[0] - Key.D0;
重复列表中的其他键。