我想在文本框按键事件中检测数字键盘的数字键,实际上我只想允许用户从数字键盘而不是字母数字键盘输入数字。
如果数字不是来自键盘的数字小键盘,则应取消事件。
除了GetAsyncKeyState()
完成这项任务,还有什么办法吗?
目前,我正在尝试此代码。
If e.KeyChar = Chr(49) Then '48 to 57 are the char codes for "0 to 9" of alphanumeric keypad.
e.Handled = True
End I
使用GetAsyncKeyState()
是我的首要任务,因为这会降低我的应用程序的性能。
有两种检查方法
若要检查特定的键而不是字符,请使用KeyDown / KeyUp事件的KeyCode属性获取Keys.NumPad0到Keys.NumPad9之间的值。KeyPress不提供此属性。
If (e.KeyCode >= Keys.NumPad0 and e.KeyCode <= Keys.NumPad9) Then ...
如果要检查字符是否为数字,可以使用Char.IsDigit检查字符是否为数字。你可以写:
If Char.IsDigit(e.KeyChar) Then ....
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句