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

How do I compare pressed Key values in keyDown event

我正在尝试做一些非常琐碎的事情,但不知何故无法理解它。我正在 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?

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

我希望我已经尽可能多地解释了,但如果您需要任何说明,请询问..

谢谢

你在比较同类吗?请注意(无论出于何种原因),.NET 具有(至少)两个不同的 Key 枚举。您似乎是在与 System.Windows.Input.

中的 Keys enum from Windows.Forms, but you may need to instead compare against the Key enum 进行比较

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