如何比较keyDown事件中的按键值

时间:2015-03-31 10:03:12

标签: c# .net wpf vb.net keydown

我正在尝试一些非常微不足道的事情,但不知何故无法理解它...我正在处理wpf中的telerik网格的KeyDown事件。

想要检查按下的键是数字还是小数,所以我这样做..

If ((e.Key >= Keys.D0 AndAlso e.Key <= Keys.D9) OrElse
    (e.Key >= Keys.NumPad0 AndAlso e.Key <= Keys.NumPad9) OrElse
    e.Key = Keys.Decimal) Then

        e.Handled = False
Else
        e.Handled = True
End If

但上述情况如果从未满足......例如,如果我按下D4

这些是if

中的计算值
Dim one = e.Key >= Keys.D0 -> False
Dim two = e.Key <= Keys.D9 -> True
Dim three = e.Key >= Keys.NumPad0 -> False
Dim four = e.Key <= Keys.NumPad9 -> True
Dim five = e.Key = Keys.Decimal -> False

为什么D4低于D9但不高于D0?

如何简单地将按键与键值范围进行比较?

我希望我尽可能多地解释,但如果您需要澄清,请询问..

感谢

1 个答案:

答案 0 :(得分:2)

你喜欢比较吗?请注意(无论出于何种原因),.NET具有(至少)两个不同的Key枚举。看起来您正在与Windows.Forms中的Keys enum进行比较,但您可能需要与System.Windows.Input中的Key enum进行比较。

每个枚举的成员都有不同的值,因此可以解释您使用错误的行为时所看到的行为。