Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算textchanged事件的值?_C#_Winforms - Fatal编程技术网

C# 如何计算textchanged事件的值?

C# 如何计算textchanged事件的值?,c#,winforms,C#,Winforms,我已经试过了 decimal a1 = Convert.ToDecimal(0.00); decimal b1 = Convert.ToDecimal(0.00); decimal c1 = Convert.ToDecimal(0.00); a1 = Convert.ToDecimal(txt_Advance.Text.Trim().ToString()); b1 = Convert.ToDecimal(txtTotal.Text.Trim().ToString()); c1 = b1 - a1

我已经试过了

decimal a1 = Convert.ToDecimal(0.00);
decimal b1 = Convert.ToDecimal(0.00);
decimal c1 = Convert.ToDecimal(0.00);
a1 = Convert.ToDecimal(txt_Advance.Text.Trim().ToString());
b1 = Convert.ToDecimal(txtTotal.Text.Trim().ToString());
c1 = b1 - a1;
txt_Net.Text = c1.ToString();

当我再次更改值时,这只起作用一次。它在txt_Advance处给出了错误的格式。text

您需要使用
TryParse
方法。实际上,当您输入某个值时,它被正确地解析了。但当您按下
backspace
时,该值将被删除,
文本框
变为
,因此尝试将
空字符串转换为十进制
会出现
格式异常

您可以使用
TryParse
方法,也可以检查
textbox
值是否
不为空
而不是
将其转换为
十进制

decimal.TryParse(txt_Advance.Text.Trim().ToString(),out a1);


具体在哪一行?您能调试您的代码并告诉我
txt\u Advance.text
的值吗?还有什么是您的
CurrentCulture
?CurrentCulture!是什么?txt_Advance.text的值来自datagridview。还希望在text更改事件时计算错误:无法隐式将布尔值转换为小数您将编写
a1=decimal.TryParse(txt_Advance.text.Trim().ToString(),out a1)所以在这种情况下无需赋值,只需写
decimal.TryParse(txt_Advance.Text.Trim().ToString(),out a1)这将为
a1
赋值。当清空两个文本框时,会再次出现错误。添加这两个文本框时,也会同时执行相同的操作。此外,请使用更新的代码更新问题。
if(!string.IsNullOrEmpty(txt_Advance.Text.Trim().ToString()))
  a1 = Convert.ToDecimal(txt_Advance.Text.Trim().ToString());