通过KEY_UP或KEY_DOWN事件,再其中用ASCII来判断

解决方案 »

  1.   

    没有更好一点的办法么?楼上两位老大的办法我用过,但是
    小数点不好控制了,如果输入若干位小数点的话也会出错啊
    在VF中可以通过设置Text的value属性来解决,C#没有类似的方法么?
      

  2.   

    if ((e.KeyChar != (char)46)&&(e.KeyChar.CompareTo('0')<0 || e.KeyChar.CompareTo('9')>0)) //如果字符不等于'.'并且大于‘0’,小于'9'
    {
    if (e.KeyChar != '\b')
    e.Handled = true; //如果输入的数据不在0~9之间和不是'.'的话就什么都不做.
    }
    if ((e.KeyChar == (char)46))
    {
                    string s = ((DataGridTextBox)sender).Text;
    if (s.IndexOf(e.KeyChar.ToString())>0)
    {
       e.Handled = true;
    }
    }
    这样应该可以满足楼主的需求吧。接分
      

  3.   

    楼上的老大 的代码 我已经试过了,但是我用的是TextBOX,不知道老大试过没有
    如果在TextBox里用中文输入法的话竟然可以输入中文,我的意思是只让他输入
    数字,还望老大赐教!
      

  4.   

    关掉输入法,就可以啊!textBox1.ImeMode = System.Windows.Forms.ImeMode.Disable;