[英]Getting error message box when textbox1.text is empty
我有错误消息ibb.co/dmKd2o的屏幕截图。 基本上是说“输入字符串的格式不正确”,并且该错误消息仅在我清除textbox1.text时才会出现。
代码如下:
/*This is located inside public partial class Form1 : Form*/
double aantalgroep = 0;
double number = 0;
/*This is located inside private void Calculate()*/
aantalgroep = double.Parse(textBox1.Text);
/* Wat er gebeurd bij RadioButton1 Checked */
if (radioButton1.Checked)
{
number = aantalgroep * 8;
textBox2.Text = number.ToString();
/* I tried this but this doesn't work? */
if (textBox1.Text == "")
{ aantalgroep = 0;
} else
{
aantalgroep = double.Parse(textBox1.Text);
}
/* From here everything is oke( i think ) */
if (aantalgroep < 10)
{
textBox2.Text = number.ToString();
}
}
一种解决方案是使用TryParse()
代替Parse()
:
double.TryParse(textBox1.Text, out aantalgroep);
这会将aantalgroep
设置为成功解析时所期望的值,并将无效字符串的aantalgroep
设置为0(真正的default(double)
为0)。
在此行中,当文本框为空时,将收到该错误
aantalgroep = double.Parse(textBox1.Text);
您需要使用
if(!double.TryParse(textBox1.Text, out aantalgroep))
aantalgroep = 0;
或仅调用TryParse而不使用if,因为aantalgroep已被初始化为0
double.TryParse(textBox1.Text, out aantalgroep);
aantalgroep = double.Parse(textBox1.Text);
如果textBox1.Text不是有效的数字字符串,将失败。 捕获异常或使用double.TryParse
都会返回布尔值,告诉您是否成功
使用此代码:
if (string.IsNullOrEmpty(textBox1.Text))
{ aantalgroep = 0;
}
我想我也在另一个问题的评论中提到了这一点。
这两个方法double.Parse()
和double.TryParse()
做了两件事。
此方法将string
转换为double
,并返回值。 如果 string
不表示可以转换为double
FormatException
值的有效值,则将抛出FormatException
。
因此,例如,如果您的字符串是“ abc”之类的内容,或者它是一个空字符串,则它将引发上述异常。
这将尝试将string
转换为double
。 如果成功转换,则返回true
, result
将包含转换后的值。 但是,如果未成功,它将不会引发异常,而是将返回false
,并且失败情况下的result
值将为零。
见下文:
当此方法返回时,如果转换成功,则包含与s参数等效的双精度浮点数;如果转换失败,则包含零。 如果s参数为null或String.Empty,不是有效格式的数字,或者表示小于MinValue或大于MaxValue的数字,则转换失败。 该参数未初始化传递; 结果最初提供的任何值都将被覆盖。
现在,看一下您的代码,在我看来,您想查看TextBox
的值是否可以转换为double
,如果成功,请对该值进行处理,否则在TextBox
显示“ 0”。
因此,尝试在您的脑海中制定您需要做什么。 将会是这样的:
double
。 使用double.TryParse()
。 if
语句。 double
值执行所需操作。 aantalgroep
变量将包含此值。 TextBox
。 它看起来应该像这样:
double aantalgroep = 0;
double number = 0;
if (radioButton1.Checked)
{
if (double.TryParse(textBox1.Text, out aantalgroep))
{
// Stuff you do when successful.
number = aantalgroep * 8;
textBox2.Text = number.ToString();
}
else
{
// Stuff you do when unsuccessful.
// Something like textBox2.Text = "0"; ?
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.