在我的一个程序中,我必须接受用户的数值。我做了“double.parse”将文本框中的字符串转换为double。但是在调试期间,只要我输入减号( - ),编译器就会显示错误。错误是:
FORMAT EXCEPTION IS UNHANDLED
Input string was not in a correct format.
代码是:
private void textBox1_TextChanged(object sender, EventArgs e)
{
p1 = double.Parse(textBox1.Text);
}
答案 0 :(得分:8)
这是因为您在textBox1_TextChanged
中执行此操作:现在解析double
为时尚早,在该阶段可能不完整。
尝试在最终用户认为条目完成时执行此操作 - 例如,在丢失焦点事件处理程序中。或者,您可以使用double.TryParse
方法来避免部分条目的异常。
答案 1 :(得分:0)
private void textbox1_TextChanged(object sender, EventArgs e)
{
if (textbox1.Text != "" & textbox1.Text != "-")
{
p1 = double.Parse(textbox1.Text);
}
}
或者这也有效......