只能输入数字的方法

来源:互联网 发布:美股港股实时行情软件 编辑:程序博客网 时间:2024/05/01 13:10

只能输入数字的方法:

首先谢谢这些作者,参考了这几篇文章。都很好的:

http://www.cnblogs.com/codefly/archive/2011/12/07/2279316.html

http://www.cnblogs.com/IAmBetter/archive/2012/01/10/2318328.html

利用这则:

http://tech.it168.com/d/2008-05-08/200805080926800.shtml

 

 

在Winform(C#)中要实现限制Textbox只能输入数字,一般的做法就是在按键事件中处理,判断keychar的值。限制只能输入数字,小数点,Backspace,del这几个键。数字0~9所对应的keychar为48~57,小数点是46,Backspace是8。    会车是13
      拖一个Textbox到窗体上,添加OnKeyPress事件,在事件写判断的代码,只要判断不是这些键,设置e.Handled的值为true,就可以屏蔽输入。

 

 

1: textbox.OnKeyPress事件是在向textbox输入字符的时候触发的。

2:判断如果不是这些字符就禁止输入。char.IsDigit(e.KeyChar)判断是否是数字

 

if(e.KeyChar!=8&&e.KeyChar!=13&&!char.IsDigit(e.KeyChar)&&e.KeyChar!=46)
{
    //8 删除键 13回车 46 小数点
   MessageBox.Show("请输入数字");
    e.Handled = true;//禁止输入
 }

 

3:当如果textbox已有值为123  当我键盘点击 A 时:

Textbox.text 取到的就是123.  如果要取到123A应该是:textbox.text+e.KeyChar.ToString()

///////////////////////////////////////

自己实现的是:

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
  //数字0~9所对应的keychar为48~57
  //小数点是46,Backspace是8 ,会车 13
  if (e.KeyChar != 8 && e.KeyChar != 13 && !char.IsDigit(e.KeyChar) && e.KeyChar != 46)
  {
    e.Handled = true//禁止输入
  }
  if (e.KeyChar == 46)
  {
    string pattern = @"^\d+(\.\d+)?$"//匹配正浮点数的正则
Match m = Regex.Match(textBox2.Text + e.KeyChar.ToString() + "0", pattern);
 //textBox2.Text取到的是在点击键盘输入字符前的textbox的text。
    //加0 是为了当输入 点 时,是字符串拼接为合法的。
 
    if (!m.Success)
    {
      e.Handled = true;
    }
  }
            
}

 

 


原创粉丝点击