【问题标题】:Validate text box to limited numeric input验证文本框以限制数字输入
【发布时间】:2015-01-25 13:50:10
【问题描述】:

我有 c# windows 窗体中的文本框。在这里,我将 tsextbox 的输入限制为数字值。

private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!(Char.IsDigit(e.KeyChar)))
        e.Handled = true;
}

我还有两个要求。

  1. 我想让文本框只接受一位数字。它应该是 0、1、2 或 3。
  2. 如何在上面给出的代码中启用退格?

【问题讨论】:

    标签: c# winforms validation textbox keypress


    【解决方案1】:

    这是我的做法:

    private void txtpref02_KeyDown(object sender, KeyEventArgs e)
    {
        switch(e.KeyCode)
        {
            case Keys.D0:
            case Keys.NumPad0:
            case Keys.D1:
            case Keys.NumPad1:
            case Keys.D2:
            case Keys.NumPad2:
            case Keys.D3:
            case Keys.NumPad3:
            case Keys.Back:
            case Keys.Delete:
                return;
            default:
                e.SuppressKeyPress = true;
                e.Handled = true;
                break;
        }
    }
    

    此外,您可以将MaxLength 属性设置为1 以限制您指定的字符数。

    请注意:此代码使用的是KeyDown 事件,而不是KeyPress 事件。

    【讨论】:

      【解决方案2】:

      试试这个:

      private void txtpref02_KeyPress(object sender, KeyPressEventArgs e)
      {
          if (!(Char.IsDigit(e.KeyChar)) || e.KeyChar == (char)8)
              e.Handled = true;
      }
      

      要只接受一个字符,您可以使用TextBoxMaxLength 属性。

      【讨论】:

      • 现在退格有效,最大长度也有效。非常感谢。有没有办法将输入的数字限制为这个(0,1,2,3)集合中的一个。
      猜你喜欢
      • 2013-04-17
      • 2016-05-21
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      相关资源
      最近更新 更多