你可以写keydown事件,判断是不是数字嘛!

解决方案 »

  1.   

    在TextBox的Change事件里面检测,每次Change后,检测其Text是否含了非法字符。
    如果用KeyDown之类的事件,就要小心用户的粘贴操作。
      

  2.   

    private void TextBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
        if  (!(Char.IsNumber(e.KeyChar)  ||  e.KeyChar  ==  '\b' || e.KeyChar == '.'))  
        {
            e.Handled  =  true;
        }
    }
      

  3.   

    楼上的好像有点错了喔,e.Handled就该是false才对吧
    private void TextBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
        if  (!(Char.IsNumber(e.KeyChar)  ||  e.KeyChar  ==  '\b' || e.KeyChar == '.'))  
        {
            e.Handled  =  false;
        }
    }
      

  4.   

    原来有Char.IsNumber这个方法,我不知道,还自己编了一个,呵呵。
    还有个问题我如何得到是哪个textbox传过来?
      

  5.   

    你再加一个事件啊,如果判断出不是数字,就撤消刚刚的change动作,也就是删除那些非法字符,好象不是很难吧
      

  6.   

    大家是不是都太习惯写代码解决问题了。
    c#里有一个控件是专门做规则检查和控制的(具体名字我忘了,现在手边机器没有。net)
    你直接用那个控件,然后设定只能为数字的规则,就可以了。
    像我以前检测输入email,就是直接用控件,规则为email,它自己知道该检测什么的