【问题标题】:C# Detect when key gets pressed and trigger a buttonC#检测何时按下键并触发按钮
【发布时间】:2018-03-08 09:32:14
【问题描述】:

所以我正在尝试制作一个简单的计算器。用户只能通过表单上的按钮或数字键盘输入数字。这是我的代码:

private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        string key = "";

        switch (e.KeyCode)
        {
            case (Keys.NumPad1):
                key = "1";
                break;
            case (Keys.NumPad2):
                key = "2";
                break;
            default:
                break;
        }

        txt_string.Text = txt_string.Text + key;
    }

如果我在 KeyDown 函数上设置断点并按下数字键盘键(以及所有其他键),程序甚至不会到达该断点。

我是否必须更改表单上的某些内容才能检测密钥?

【问题讨论】:

    标签: c# calculator keydown


    【解决方案1】:

    您需要将 KeyPreview 设置为 true(表单上的属性)。另外,我建议不要尝试调试该行为 - 因为您可能会影响您正在测试的行为(Debug.WriteLine())是您的朋友。

    【讨论】:

      【解决方案2】:

      只是指出许多键盘没有小键盘。您可以检查键是否为整数。

      void Form1_KeyDown(object sender, KeyPressEventArgs e)
      {
          if (char.IsDigit(e.KeyChar))
          {
              txt_string.Text += e.KeyChar;
          }
      }
      

      这与其说是解决方案,不如说是代码审查。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-03
        相关资源
        最近更新 更多