-1
  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();
        }
4

3 回答 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 回答