if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8))
e.Handled = true; 
base.OnKeyPress(e);

解决方案 »

  1.   

    判断e.KeyChar 为数字则不处理。
    否则清空文本框。
    又不用你写它,只读有什么关系?
      

  2.   

    genuinekl(genuinekl),
    我的程序是这样的:if(e.KeyChar <48 || e.KeyChar >57) 
    {
    e.Handled =true;
    base.OnKeyPress (e);
    }当我输入非数字的字符时,程序进行了 base.OnKeyPress (e)  事件,但是还是没有把这个字符给清除掉啊?该怎么办啊?
      

  3.   

    直接如下就行了
    if(e.KeyChar <48 || e.KeyChar >57) 
    {
    e.Handled =true;
    }
      

  4.   

    呵呵,晚了一步,在keypress事件中用楼上的方法!
      

  5.   

    Regex reg = new Regex (@"^-?(0|\d+)(\.\d+)?$");
    if(!reg.Match (this.year.Text.Trim()).Success)
    {
    MessageBox.Show ("请输入数字!如:123");
    }
      

  6.   

    if(e.KeyChar <48 || e.KeyChar >57) 
    {
    e.Handled =true;
    }
      

  7.   

    在keypress中用
    if(e.KeyChar <48 || e.KeyChar >57) 
    {
    e.Handled =true;
    }
    即可
      

  8.   

    为什么在 TRUEDBGrid 中,就不可以呢????
      

  9.   

    B/S方式的程序我搞定了,但是你好像说得是c/s方式的。b/s中用javascipt 和正则表达式来写的