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

Validate text box to limited numeric input

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

试试这个:

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

要只接受一个字符,可以使用MaxLength属性的TextBox

这是我的做法:

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