不能在c#的文本框中输入负数

本文关键字:输入 文本 不能 | 更新日期: 2023-09-27 18:26:43

在我的一个程序中,我必须接受用户的数值。我做了"double.parse"将textbox中的字符串转换为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);
    }

不能在c#的文本框中输入负数

这是因为您在textBox1_TextChanged中执行此操作:现在解析double还为时过早,在那个阶段它可能是不完整的。

当最终用户认为条目已完成时尝试执行此操作,例如在丢失焦点事件处理程序中。或者,您可以使用double.TryParse方法来避免部分条目出现异常。

private void textbox1_TextChanged(object sender, EventArgs e)
    {
        if (textbox1.Text != "" & textbox1.Text != "-")
        {
            p1 = double.Parse(textbox1.Text);
        }
    }

或者这也有效。。。