我可以确定 KeyEventArg 是字母还是数字吗?
有没有办法确定 KeyEventArgs
中的键是否为字母/数字(AZ
、0-9
)?还是我必须自己做?我找到了一种方法 e.KeyCode,准确吗?
if(((e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z )
|| (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9 )
|| (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9))
Is there a way to determine if a key is letter/number (A-Z
,0-9
) in the KeyEventArgs
? Or do I have to make it myself? I found a way with e.KeyCode, is that accurate?
if(((e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z )
|| (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9 )
|| (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
char.IsLetterOrDigit()
的KeyCode
上的方法事件参数:You can use the
char.IsLetterOrDigit()
method on theKeyCode
of the event args:在 WPF 中?使用 PreviewTextInput 或 TextInput 事件代替 KeyDown
In WPF? Use PreviewTextInput or TextInput events instead of KeyDown
Char.IsNumber() 和 Char.IsLetter()
Char.IsNumber() and Char.IsLetter()
Char.IsLetter() 接受一些 OEM 密钥被视为字母字符的代码。
我的情况是,当我输入键盘(波形符)时,此 Keycode 返回 OEM3。
我检查了值(波浪号),它说
但实际输入 'A' 是
结果,两者都通过了 Char。 IsLetter() 为 True。
为了避免这种情况,我放置了下面的代码。
Char.IsLetter() accepts some of OEM key codes that was treated as alphabetical characters.
My case was when I typed a keyboard (tilde) then this Keycode was returned OEM3.
I inspected the value (tilde) and it says
But actual typing 'A' was
As a result, both passed Char.IsLetter() as True.
To avoid this, I put below code.