无法在c#的文本框中输入负数

时间:2012-03-04 19:02:34

标签: c# string textbox formatting

在我的一个程序中,我必须接受用户的数值。我做了“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);
    }

2 个答案:

答案 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);
        }
    }

或者这也有效......