winform 输入字符串的格式不正确
我的程序窗口上有几个文本框,我想在文本框中输入数字, 并使用 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);”
------解决方案--------------------类型不正确。是不是输入有字母,空格或特殊字符?
double.TryParse()应该不会报错呀,提示什么错误?
------解决方案--------------------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;
}
}
直接限定你的文本框只可以输入数字。
------解决方案--------------------问题在这里,double.TryParse(txt1.Text, out B11) 你第一次输入时txt1.Text是一个空的字符串,所以报错
------解决方案--------------------他是在keypress事件里面,怎么第一次输入空字符串呢