我怎样判短WinFom中在文本框输入的值只能是数字,英文字母和下划线啊!请给个代码吧!

解决方案 »

  1.   

    private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar>='a' && e.KeyChar<='z' || e.KeyChar>='A' && e.KeyChar<='Z' )
    {
    //字母
    }
    else if(e.KeyChar>='0' && e.KeyChar<='9')
    {
    //数字
    }
    else if(e.KeyChar=='_')
    {
    //下划线
    }
    else
    {
    //其他
    }
    }
      

  2.   

    正则表达式:
    static bool IsNumeric(string str)  
    {   
       System.Text.RegularExpressions.Regex reg1  
           = new System.Text.RegularExpressions.Regex(@"^[-]?(\d+\.?\d*|\.\d+)$");   
       return reg1.IsMatch(str);  
    }
      

  3.   

    不要忘了加事件
    this.textBox3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox3_KeyPress);
      

  4.   

    private bool JudgeNum(string value)
    {
    bool flag;
    try
    {
    Convert.ToInt32(value);
    flag = true;
    return flag;
    }
    catch
    {
    flag = false;
    return flag;
    }
    }
    把你输入到Text里面的参数传到这个方法里面,要是返回的是false,那么输入的值就不是数字类型的
      

  5.   

    或者在属性列表相应条目双击自动加事件或者用KeyDown事件
      

  6.   

    1楼正解,不过可能无法移动位置。
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
      if (char.IsControl(e.KeyChar) || char.IsLetterOrDigit(e.KeyChar) || e.KeyChar == '_')
      {
      }
      else
      {
        e.Handled = true;
      }
            }