验证文本框以限制数字输入

时间:2015-01-25 13:50:11

标签: c# winforms validation textbox keypress

我在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. 如何在上面给出的代码中启用退格键?

2 个答案:

答案 0 :(得分:3)

以下是我的表现:

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事件。

答案 1 :(得分:0)

试试这个:

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

要只接受一个字符,您可以使用MaxLength的{​​{1}}属性。