我正在创建一个计算器,我想在其中添加验证码,这样如果输入了除数字之外的任何内容,则会显示错误消息。
private void button4_Click(object sender, EventArgs e)
{
int R = Convert.ToInt32(textBox1.Text);
int I = Convert.ToInt32(textBox2.Text);
int number2;
if (int.TryParse(textBox1.Text, out number2))
{
int E = R - I;
textBox3.Text = E.ToString();
}
else
{
textBox2.Text = ("value entered is not whole number");
}
}
这是我尝试使用的代码,但在输入非数字值时会出现错误消息。
答案 0 :(得分:2)
您在Convert.ToInt32
之前调用TryParse
方法,这会导致异常。不要这样做,请使用TryParse
进行验证。
private void button4_Click(object sender, EventArgs e)
{
int R, I;
if (int.TryParse(textBox1.Text, out R) &&
int.TryParse(textBox2.Text, out I))
{
int E = R - I;
textBox3.Text = E.ToString();
}
else
{
MessageBox.Show("You have entered an invalid value!");
}
}
您也可以考虑使用更具描述性的变量名称,而不是E
,R
,I
......
答案 1 :(得分:1)
private void button4_Click(object sender, EventArgs e)
{
int R, I;
if (int.TryParse(textBox1.Text, out R)
&& int.TryParse(textBox2.Text, out I))
{
int E = R - I;
textBox3.Text = E.ToString();
}
else { textBox3.Text = ("value entered is not whole number"); }
}
答案 2 :(得分:1)
确保您尝试将字符串解析为始终使用TryParse
的整数,而不是立即转换...如果有字母,则转换失败。
private void button4_Click(object sender, EventArgs e)
{
int number1;
int number2;
if (int.TryParse(textBox1.Text, out number1) && int.TryParse(textBox2.Text, out number2))
{
//do your thang (subtraction, assigning the result to TextBox3)
//return
}
else
{
MessageBox.Show("Oh no you entered something that's not an int!");
}
}
我还可以补充一点,将输入文本框之一的值“输入的值不是一个整数”,这是一种奇怪的UI体验。我将文本框标记为红色或弹出一个消息框或其他内容,将输入的值保留在框中,以防它是一些非常长的数字,如879320!78,他们不小心输入了一个奇怪的符号或其他东西。