private void txtrate_TextChanged(object sender, EventArgs e)
{
int a = Convert.ToInt32(txtqty.Text);
int b = Convert.ToInt32(txtrate.Text);
int c = a * b;
txttotal.Text = Convert.ToString(c);
//txttotal.Text = (Convert.ToInt32(txtqty.Text) * Convert.ToInt32(txtrate.Text)).ToString();
}
问问题
147 次
3 回答
0
是的,我也建议TryParse
:
private void txtrate_TextChanged(object sender, EventArgs e)
{
int number;
bool result = Int32.TryParse(txtqty.Text, out number);
if (result)
{
//Converting is Ok, proceed
}
else
{
//Convertign fail
txtqty.Focus();
MessageBox.Show("Please enter only number for this field");
return;
}
}
我建议对每个文本框进行此操作,将焦点设置为输入错误的文本框,并为用户提供有用的消息。在我看来,这是一种合适且用户友好的方式。
于 2013-04-28T08:04:12.007 回答
0
嗯......这个错误发生在 txtqty.Text(或变量 b 的 txtrate.Text)不包含有效数字。所以用户输入了字母或其他字符,而不是 0 到 9。
您可以尝试先验证您的输入TryParse
:
private void txtrate_TextChanged(object sender, EventArgs e)
{
int a = Convert.ToInt32(txtqty.Text);
int b = Convert.ToInt32(txtrate.Text);
if (Int32.TryParse(txtqty.Text, out a) && (Int32.TryParse(txtrate.Text, out b)
{
int c = a * b;
txttotal.Text = c.ToString();
}
}
于 2013-04-28T07:43:40.630 回答
0
是的,这是由于值不只包含数字,为避免这种情况,请设置您尝试使用文本字段收集的数据类型,您可以设置参考这篇文章以详细了解如何操作.
于 2013-04-28T07:46:30.627 回答