通过按键获取 Int 形式的数字

发布于 2024-12-07 11:16:43 字数 330 浏览 0 评论 0原文

我试图从键盘上的数字键获取一个整数。例如,我想按 5 并获取 int 5。

我正在使用 KeyDown 事件并具有以下内容:

    private void listBox1_KeyDown(object sender, KeyEventArgs e)
    {
            int rating = (int)e.KeyValue;
    }

我得到的输出是 50-60 范围内的整数。我也尝试过使用 e.KeyData 和 e.KeyCode 但没有任何运气。

对此的任何帮助将不胜感激,我感觉这是我忽略或不理解的简单事情。

I'm trying to get an integer from the number keys on the keyboard. For example, I want to press 5 and get the int 5.

I am using the KeyDown event and have the following:

    private void listBox1_KeyDown(object sender, KeyEventArgs e)
    {
            int rating = (int)e.KeyValue;
    }

And the output that I am getting are integers from the 50-60 range. I have tried also using e.KeyData and e.KeyCode without any luck.

Any help with this would be appreciated, I get the feeling it's something simple that I am overlooking or not understanding.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

無處可尋 2024-12-14 11:16:43

e.KeyValue 返回按下的键的字符代码。

要获得实际数字,您可以进行一些字符减法,即

int value = 0;
if (e.KeyValue >= 48 && e.KeyValue <= 57)
   value = e.KeyValue - 48;

注意:如果您想知道 48 和 57 来自哪里,那么您可能需要查看 ASCII 表:http://www.asciitable.com/index/asciifull.gif

e.KeyValue returns the character code of the key pressed.

To get the actual digit you could do some character subtractions i.e.

int value = 0;
if (e.KeyValue >= 48 && e.KeyValue <= 57)
   value = e.KeyValue - 48;

NB: If you're wondering where 48 and 57 come from then you may want to check out the ASCII table: http://www.asciitable.com/index/asciifull.gif

孤独陪着我 2024-12-14 11:16:43

这有效....有点hacky...

Convert.ToInt32(e.KeyData.ToString()).Replace("D",""));

This works.... kinda hacky...

Convert.ToInt32(e.KeyData.ToString()).Replace("D",""));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文