处理键盘事件时如何将e.KeyChar转换为实际字符值?

use*_*843 5 .net c# keypress keyboard-events winforms

我想要做的就是获得在为事件输入密钥时按下的实际字符.

我所看到的唯一选择是e.KeyChar哪个会给我位置而不是角色本身.

我想要做的是将按键的值限制在0-9之间的数字.我现在这样做的方式就是if((e.KeyChar < 48 || (e.KeyChar > 57)))

仅仅输入0和9的值似乎有点便宜,我很想知道如何获得字符值本身而不是键.

编辑:感谢您的投入; 所以一般来说,没有办法从e.KeyChar值到输入本身的值.

我真的想接受我的事件,e,并且直接访问该字符,而不是使用e.KeyChar来获取该值的数字表示.

小智 5

这是一种更简单的方法来检测按下的键是否为数字:

if (char.IsDigit(e.KeyChar)) { // doSomething(); }
Run Code Online (Sandbox Code Playgroud)


Blo*_*ard 2

KeyChar是一个char值 - 它字符本身 - 48 和 57 是 ASCII 值0和的 ascii 值9

在 C# 中,您可以通过数字 ASCII 代码或单引号中的实际字符来引用字符。因此,您的代码可以变成:

if((e.KeyChar < '0' || (e.KeyChar > '9')))
Run Code Online (Sandbox Code Playgroud)

这是完全相同的事情。