如何让TEXTBOX只能输入数字?但是前提是要可以输入0。以前朋友给我的不错 但是 不是输入 以0开头的 数字串比如:0231445671 。

解决方案 »

  1.   

    如果是winform 的话
    试试
    private   void   textBox1_KeyPress(object   sender,   System.Windows.Forms.KeyPressEventArgs   e) 

    if   ((e.KeyChar   <   48   ||   e.KeyChar   >   57)   &&   (e.KeyChar   !=   8)) 
    e.Handled   =   true; 
    base.OnKeyPress(e); } 
      

  2.   

    忘记说了,我事件里有非常多的代码能不能用我这个触发?
    private void tb_fee_in_card_id_TextChanged(object sender, EventArgs e)
      

  3.   

    winform程序有MaskedTextBox控件可以用
    web的onkeypress事件+js
      

  4.   

    if (!System.Text.RegularExpressions.Regex.IsMatch((sender as TextBox).Text, @"^(?!0\d)\d+(\.\d*)?$"))
                {
                    int index = (sender as TextBox).SelectionStart;
                    (sender as TextBox).Text = (sender as TextBox).Tag as string;
                    (sender as TextBox).SelectionStart = index;
                }我用这个 但是是不允许输入 0的
      

  5.   

    我记得好像有个方法是判断的isdigital  应该有  下班了   明天来给你看看,你可以进行判断
    if(isdigital(this.TextBox1.text))
    {
       messagebox.show(“你输入的是数字”);
    }
      

  6.   

    有char.isdigit  我给你写了个 你改改就能用了public bool Isdigit(string str)
            {
                char[] temp = str.ToCharArray();
                foreach (char cr in temp)
                {
                    if (!char.IsDigit(cr))
                    {
                        MessageBox.Show(cr.ToString()+"is not a digit");
                    }
                }
            }
      

  7.   

    直接將你原來的正則表達式 @"^(?!0\d)\d+(\.\d*)?$" 修改如下:@"^\d+(\.\d*)?$"
      

  8.   

    写的太快了 忘记加返回值了 汗!再给你加上public bool Isdigit(string str)
            {
                char[] temp = str.ToCharArray();
                foreach (char cr in temp)
                {
                    if (!char.IsDigit(cr))
                    {
                        return false;       
                    }
                }
                      return ture;
            }
      

  9.   

     <asp:TextBox ID="TextBox1" runat="server" onpaste="return false" onkeypress="if ((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46) event.returnValue=false;" ></asp:TextBox>
    用这个onkeypress="if ((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46) event.returnValue=false;"出了数字什么都不可以输入
      

  10.   

                string s = "0123456789" + (char)8;
                if (s.IndexOf(e.KeyChar.ToString()) < 0)
                {
                    e.Handled = true;
                }
      

  11.   


     private void txt_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Enter))
                {
                    e.Handled = true;
                }
            }
      

  12.   

     Boolean result = true ;
                char[] arr = this.txtNum.Text.ToCharArray();            foreach (char num in arr)
                {
                    if (!(char.IsDigit(num)))
                    {
                        result = false ;
                    }
                }            if (result)
                {
                    MessageBox.Show("是数字!");
                }            if (result == false)
                {
                    MessageBox.Show("不是数字");
                }