C#文本框中只能输入数字和一个小数点

解决方案 »

  1.   

    也不行啊,^\d+.?\d*$这个的话虽然有提示错误,可是仍然可以输入到textBox中啊
      

  2.   

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.')
                {
                    e.Handled = false;
                }
                else 
                {
                    e.Handled = true;
                }
            }
    以上是源代码
    文本框有一个KeyPress事件限制输入的
      

  3.   

    我这有个笨办法,楼主自己改改看吧private void TextBox1_TextChanged(object sender, EventArgs e)
            {   
                Regex textNumberReg = new Regex(@"[^(0-9)]");
                Match searchMatch = textNumberReg.Match(PhoneNumText2.Text);
                if (searchMatch.Success)
                    if (DialogResult.OK == MessageBox.Show("只能输入数字", "出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error))
                        TextBox1.Text = "";
                
            }
      

  4.   

    一法:    
     private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
            { 
                if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.') 
                { 
                    e.Handled = false; 
                } 
                else 
                { 
                    e.Handled = true; 
                } 
            } 
    以上是源代码 
    二法:
    这个也是可以的咯,正则表达式
    private void TextBox1_TextChanged(object sender, EventArgs e)
            {   
                Regex textNumberReg = new Regex(@"[^(0-9)]");
                Match searchMatch = textNumberReg.Match(PhoneNumText2.Text);
                if (searchMatch.Success)
                    if (DialogResult.OK == MessageBox.Show("只能输入数字", "出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error))
                        TextBox1.Text = "";
                
            }
      

  5.   

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
            { 
                if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.') 
                { 
                    e.Handled = false;
                    //只能有一个小数点
                    if(textBox1.Text.IndexOf(".")>=0)e.Handled = true; //
                    else e.Handled = false; 
                } 
                else 
                { 
                    e.Handled = true;
                } 
            } 
      

  6.   

    private void textBox2_KeyPress(object sender, KeyPressEventArgs e) 
            { 
                //检测是否已经输入了小数点 
                bool IsContainsDot = this.textBox2 .Text.Contains("."); 
                if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8) && (e.KeyChar != 46)) 
                { 
                    e.Handled = true; 
                } 
                else if (IsContainsDot && (e.KeyChar == 46)) //如果输入了小数点,并且再次输入 
                { 
                    e.Handled = true; 
                } 
        
            }