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());