private void btnMoney_Click(object sender, EventArgs e)
        {
            double totalPrice=0;            if (this.txtDays.Text.Trim()!="")
            {                if (lvGive.SelectedItems.Count > 0)
                {                    rentLicenseNO = lvGive.SelectedItems[0].Text;
                    rentvehicles[rentLicenseNO].RentDate = int.Parse(this.txtDays.Text.Trim());
                    
                    vehicles.Add(rentvehicles[rentLicenseNO].LicenseNO, rentvehicles[rentLicenseNO]);
                    totalPrice = rentvehicles[rentLicenseNO].CalcPrice();
                    if (rentvehicles.ContainsKey(rentLicenseNO))
                    {
                        rentvehicles.Remove(rentLicenseNO);
                    }                    MessageBox.Show(string.Format("共计租赁费用为:{0}", totalPrice.ToString()));                    btnRefreshGive_Click(sender, e);
                }
                else
                {
                    MessageBox.Show("请选择一项!");
                } 
            }
            else
            {
                MessageBox.Show("请输入借车天数!");
            }
        }
如代码红色所示this.txtDays.Text.Trim()文本框中如果不是数字,则会报错,请问怎么处理,当我点击btnMoney_Click按钮时,如果检验到this.txtDays.Text.Trim()非数字给出对话框提示。最好详细点。帮帮小弟吧,谢谢各位了

解决方案 »

  1.   

    re=/\w*/;if(re.test(str))
    {
       alert("是数字")
    }
      

  2.   

    可以用正则表达式去验证同时你的那个地方 可以用 try catch 出来 如果catch的话  exception 会 报出一个特有的异常 好像是“不是有效的字符串的异常”你捕捉到异常就好 
      

  3.   

    两种解决方案:
    1)在文本框输入时,只允许输入数字,即相应文本框的keypress事件中判断
    private void txtDays_KeyPress(object sender, EventArgs e)
    {
      if(char.IsDigital(e.KeyChar) || e.KeyChar == 8 || e.KeyChar == 8)
      {
        e.Handled = false;
      }
      else
      {
        e.Handled = true;
      }
    }
    2)调用如下方法判断输入的字符是否为数字
    public bool IsDigital(string s)
    {
      foreach(char c in s)
      {
        if(!char.IsDigital(c))
           return false;
      }
      return true;
    }
      

  4.   

    方法太多了。。
    1正则表达式去验证
    2try catch
    3用验证控件等等
      

  5.   

      if(char.IsDigital(e.KeyChar) || e.KeyChar == 13 || e.KeyChar == 8)
    修改一下 
      
      

  6.   

    “char”并不包含“IsDigital”的定义
      

  7.   

    出现这个错误,帮忙解释一下吧,“char”并不包含“IsDigital”的定义
      

  8.   

    搞定了 vs2005应该是char.IsDigit
      

  9.   

    同意5楼的,不过这里不是EventArgs e,而是KeyPressEventArgs e ,这应该是无心之过
      

  10.   

    int j=0;
    if(!int.TryParse(this.txtDays.Text.Trim(),out j))
     rentvehicles[rentLicenseNO].RentDate = j;
    else
    rentvehicles[rentLicenseNO].RentDate = 0;
    或用正则表达式                 
    <asp:regularexpressionvalidator id="RegularExpressionValidator1" runat="server" ValidationExpression="^[0-9]*$"
    ControlToValidate="" ErrorMessage="必须输入数字"></asp:regularexpressionvalidator>
      

  11.   

    if(regex.ismatch(str,"\d"))

       XXX;
      

  12.   

    int num;
    if(int.TryParse(this.txtDays.Text.Trim(),out num))
    {
    rentvehicles[rentLicenseNO].RentDate = num;
    }else
    {
    //转换失败,非数字.此时num为0
    }
    不用正则,嘻嘻~~