c# - 为什么 KeyEvent 中的数字小键盘数字和常规数字不一样?

标签 c# textbox key-events numpad

此代码不允许我从数字键盘输入数值。

private void textBox1_KeyDown( object sender, KeyEventArgs e ) {
    e.SuppressKeyPress = !( (e.KeyValue >= 48 && e.KeyValue <= 57) )
}

一般情况下如何包含数值(来自常规键和数字键)?

最佳答案

因为毕竟它们是不同的键,尽管它们代表的字符是相同的。

为了获得更好的结果,您可以使用 Keys 枚举和 KeyCode 属性:

e.SuppressKeyPress = !((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) || (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9))

或者使用 KeyPress 事件,因为您将在事件参数中包含字符代码。

在 KeyPress 事件处理程序中,您可以执行以下操作:

 e.Handled = !Char.IsDigit(e.KeyChar)

关于c# - 为什么 KeyEvent 中的数字小键盘数字和常规数字不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32947736/

相关文章:

c# - 如何更改 RichTextBox 的部分文本颜色

java - 在 Windows 上检测 Java 中的 SHIFT 键时出现问题

java - 在 JTable 中监听 KeyEvent - 如何在编辑单元格时执行此操作?

c# - WIA 2.0 双面扫描

c# - 如何进行负面回顾?

c# - 如何在 UWP 上使用通知中心?

css - 如何在 Typescript 的文本框上创建 'glow' 效果?

javascript - 如何禁用 HTML 中基于单选按钮的文本字段?

c++ - QKeySequence 到 QKeyEvent

web.config 中的 C# 命名空间