我在c#的windows窗体中遇到问题。该计划很简单; 有3个文本框,然后它们的值相加。但是,当我点击总和按钮而不在其他3个文本框中输入任何值时,程序崩溃。
如何让这些文本框只接受正数和零? 这就是我做的事情
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);
}
答案 0 :(得分:1)
尝试使用int.TryParse
解决问题。这也处理字符串。
答案 1 :(得分:1)
您可能正在尝试将文本框文本内容转换为int。不幸的是,您无法将空字符串转换为数字。尝试将文本框默认内容设置为“0”。
答案 2 :(得分:0)
您需要检查文本框中的字符串值是否为空或空,否则无效。改变这一行:
double FirstNumb = Convert.ToDouble(txtFirstValue.Text);
到这个
double FirstNumb = 0;
double.TryParse(txtFirstValue.Text, out FirstNumb);
如果解析失败,FirstNumb将保持为0。请注意,TryParse返回bool,如果解析成功则返回true,否则返回false。你也可以对它采取行动,也许会显示一个MessageBox,要求用户填写一个值并退出求和方法。
有关详细信息,请参阅文档:http://msdn.microsoft.com/en-us/library/994c0zb1(v=vs.100).aspx
编辑:如果你只想强制执行正值,在尝试解析后你必须检查FirstNumb> = 0并使用MessageBox提醒用户原因,并中止求和方法。