c#设置TextBox只能输入数字

时间:2022-09-06 11:46:17

从百度知道里搜索到一条这样的帮助

http://zhidao.baidu.com/question/207116620.html


调用TextBox的KeyPress事件
private void txtUserId_KeyPress(object sender, KeyPressEventArgs e)
{
            //如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入
            if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar!=(char)13 && e.KeyChar!=(char)8)
            {
                e.Handled = true;
            } 
} 

但是他不能支持输入负数

所以我就把代码修改了一下

调用TextBox的KeyPress事件

 private void ForceNumberInput(object sender, KeyPressEventArgs e)
  {   
            //如果输入的不是数字键,也不是回车键、Backspace键,第一个输入不是负号,则取消该输入
            if (!(Char.IsNumber(e.KeyChar)) && (e.KeyChar != (char)13) && (e.KeyChar != (char)8) 
                && (!((((TextBox)sender).Text == "") && (e.KeyChar == (char)45))))
            {
                e.Handled = true;
            }
  }

另外可以修改TextBox的MaxLength参数就可以控制输入数字的个数了。