-3

I have a problem in my windows form in c#. The program is simple; there are 3 textboxes and then it sums their values. however, when i click on the sum button without entering any values in the other 3 textboxes, the program crashes.

How can i make these textboxes accept only positive numbers and zeros? this is what i did

    private void button1_Click(object sender, EventArgs e)
    {
        double FirstNumb = Convert.ToDouble(txtFirstValue.Text);
        double SecondNumb = Convert.ToDouble(txtSecondValue.Text);
        double ThirdNumb = Convert.ToDouble(txtThirdValue.Text);

        double m;

        m = FirstNumb + SecondNumb + ThirdNumb;
        listBox1.Items.Add(m);


    }
4

3 回答 3

1

尝试使用int.TryParse. 这也处理字符串。

演示参考

于 2013-05-15T17:44:55.397 回答
1

您可能正在尝试将文本框文本内容转换为 int。不幸的是,您不能将空字符串转换为数字。尝试将文本框的默认内容设置为“0”。

于 2013-05-15T17:45:14.057 回答
0

您需要检查文本框中的字符串值是否不为空或为空,或者无效。更改此行:

double FirstNumb = Convert.ToDouble(txtFirstValue.Text);

对此

double FirstNumb = 0;
double.TryParse(txtFirstValue.Text, out FirstNumb);

如果解析失败,FirstNumb 将保持为 0。请注意,TryParse 返回一个布尔值,如果解析成功则返回 true,否则返回 false。您也可以对此采取措施,可能会显示一个 MessageBox,要求用户填写一个值并退出 summation 方法。

有关详细信息,请参阅文档:http: //msdn.microsoft.com/en-us/library/994c0zb1 (v=vs.100).aspx

编辑:如果您只想强制执行正值,则在尝试解析后,您必须检查 FirstNumb >= 0 并使用 MessageBox 提醒用户原因,并中止求和方法。

于 2013-05-15T18:27:43.110 回答