我的程序窗口上有几个文本框,我想在文本框中输入数字, 并使用  keypress  事件限制只能输入数字;程序调试没有出错,但是运行后,在文本框中输入数字之后就出错了:
但是出错 说“字符串格式不正确“,我尝试使用使用  double.TryParse(),去验证,但还是错了,
我不知道为什么,请大家帮帮我,谢谢!                 
               
               if (double.TryParse(txt1.Text, out B11))
                {
                    B11 = B11;
                }
                else
                {
                    MessageBox.Show("程序出错!");
                }
                B12 = Convert.ToDouble(txt2.Text);
                B13 = Convert.ToDouble(txt3.Text);
                L11 = Convert.ToDouble(txt4.Text);
                L12 = Convert.ToDouble(txt5.Text);
                L13 = Convert.ToDouble(txt6.Text);
                A11 = Convert.ToDouble(txt7.Text);
                A12 = Convert.ToDouble(txt8.Text);
                A13 = Convert.ToDouble(txt9.Text);”

解决方案 »

  1.   

    类型不正确。是不是输入有字母,空格或特殊字符?double.TryParse()应该不会报错呀,提示什么错误?
      

  2.   

    private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                //检测是否已经输入了小数点
                bool IsContainsDot = ((TextBox)sender).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;
                }
            }
    直接限定你的文本框只可以输入数字。
      

  3.   

    问题在这里,double.TryParse(txt1.Text, out B11) 你第一次输入时txt1.Text是一个空的字符串,所以报错
      

  4.   

    他是在keypress事件里面,怎么第一次输入空字符串呢