C#中WinForm TextBox中的数字按键事件

时间:2015-03-17 06:14:13

标签: c# winforms textbox keypress

我想限制用户只在TextBox中键入数字。 我在keypress Event中添加了这段代码:

private void txtPartID_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (((e.KeyChar >= '0') && (e.KeyChar <= '9')) == false)
        {
            e.Handled = true;
        }
    }

但之后BackSpace键不适用于此TextBox。我怎么能改变这个?

4 个答案:

答案 0 :(得分:1)

您可以使用此方法检查退格键,

if(e.KeyChar == '\b') 

只检查数字的更好方法是

private void txtPartID_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = !(Char.IsNumber(e.KeyChar) || e.KeyChar == 8);
    }

答案 1 :(得分:0)

private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e)
{
 if (!(Char.IsDigit(e.KeyChar) && (e.KeyChar == (char)Keys.Back)))

  e.Handled = true;

}

答案 2 :(得分:0)

我认为你应该同时处理后退键和删除键。

if (!(Char.IsDigit(e.KeyChar) && (e.KeyChar == (char)Keys.Back)&& (e.KeyChar == (char)Keys.Delete)))
e.Handled = true;

答案 3 :(得分:0)

你可以使用它

private void txtColumn_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (((e.KeyChar >= '0') && (e.KeyChar <= '9') || (e.KeyChar == (char)Keys.Back)) == false)
        {
            e.Handled = true;
        }
    }