我想验证textBox中数据的类型是否是正确的,如在一个文本框中应该是0~1的小数,怎样才能判断输入是否正确呢?例如输入“abc”就不对。

解决方案 »

  1.   

    是呀,但是有什么方法可以判断用户输入的类型是否正确呢?比如:请输入年龄:就只能输入0~100的整数,而不能是“abc”之类的吧?
      

  2.   

    private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
        if(e.KeyChar=='0' || e.KeyChar=='1')
        {
            //0~1的小数
        }
        else
        {
            e.Handled=true;
        }
    }
      

  3.   

    using System;
     using System.Windows.Forms;
     
     namespace WindowsControlLibrary1
     {
         /**//// <summary>
         /// 只能输入数字的文本框
         /// </summary>
         public class NumTextBox : TextBox
        {
            public NumTextBox()
            {
            }        protected override void WndProc(ref Message m)
            {
                int WM_CHAR = 0x0102;
                if (m.Msg == WM_CHAR)
                {
                    if (((char)m.WParam >= '0') && ((char)m.WParam <= '9') ||
                    (int)m.WParam == (int)Keys.Back || (int)m.WParam == (int)Keys.Delete)
                    {
                        base.WndProc(ref m);
                    }
                }
                else
                {
                    base.WndProc(ref m);
               }
            }
        }
    }
      

  4.   

    1。在KeyUp事件里面,或者KeyPress事件里面捕捉,如果输入了非数字就把输入的值给清空。
    2。在Validated事件中也可以进行值的校验,用 VB里面的isnumberic函数比较方便。
    3。就是在其他地方做校验
      

  5.   

    最简单的方法
    private void textUserID_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar!=8&&e.KeyChar!=127&&(e.KeyChar<48||e.KeyChar>57))//只许退格和Del键和数字
    {
    e.Handled=true;
    }

    }
      

  6.   

    补充:上面过滤条件再加上"."的ASCII码
      

  7.   

    用正则啊,Regx.IsMatch(txtbox1.Text,"^\d+$")