1

我尝试为小程序提醒制作一些表单(C#、WinForms)。在此期间我遇到了一些问题 - 想要为文本框制作一些过滤器,用户必须在其中输入事件的开始时间。结果得到了下一个 - 在 KeyPress 事件中添加一些代码,允许只输入数字,但我也希望用户只能输入来自某些 diapasone 的数字。

代码:

  private void starTimetextBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
        {
            return;
        }
        if (Char.IsControl(e.KeyChar))
        {
            if (e.KeyChar == (char) (Keys.Enter))
                startTimeMMtextBox.Focus();
        }
        e.Handled = true;

    }

我可以通过使用这个事件来做到这一点吗?

4

2 回答 2

1

尝试这个:-

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
    }

注意:-您可以使用 TextBox 的 MaxLength 属性来限制用户只能输入 2 位数字。要向用户显示消息,您可以使用 TextBox 的 TextChanged 事件。

于 2013-08-24T08:18:35.330 回答
0

要对字符 0 到 9 进行过滤,您可以扩展上一个答案。(与您的问题示例类似)。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
   {
       e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar)
                   && (e.KeyChar >= '0' && e.KeyChar <= '9');
   }
于 2013-08-24T08:45:18.280 回答