c# winform bindingsource format输出字符串到货币没有$符号
c# winform bindingsource format output string to currency without the $ symbol
我知道这个问题已经被问过很多次了,但我还是无法解决这个问题。我对 windows 表格相当陌生,所以请多多包涵。
我正在尝试使用 bindingsource 将我的数据绑定到 datarepeater 中的标签。我想在没有 $ 符号的情况下将字符串显示为货币(例如从 578288 到 578,288.00)。
我试过下面的代码:
Binding b = new Binding("Text", BSource, "PaidAmt");
b.Format += new ConvertEventHandler(DecimalToCurrency);
lblPaidAmount.DataBindings.Add(b);
private void DecimalToCurrency(object sender, ConvertEventArgs cevent)
{
if (cevent.DesiredType != typeof(string)) return;
cevent.Value = ((decimal)cevent.Value).ToString("c");
}
但它仍然将我的字符串输出为 578288。我将调试器步进该函数,它正确地将我的字符串格式化为货币($578,288.00,不完全是我想要的,但至少是某种东西)但它没有显示在标签。
我也试过这个:
lblPaidAmount.DataBindings.Add("Text", BSource, "PaidAmt", true, DataSourceUpdateMode.Never, "", "0.00");
但我无法使用逗号,因为并非每个字符串都具有相同的长度(我知道这也不完全正确)。
如果这些代码有任何问题以及更正方法,有人可以指出我吗?或者任何解决方法?
使用这个得到了我想要的输出:
lblPaidAmount.DataBindings.Add("Text", BSource, "AD1008", true, DataSourceUpdateMode.Never, "", "#,#.00");
我刚刚将字符串格式从 0.00 更改为 #,#.00
早该知道的更好。
您需要数字格式中的千位分隔符 #,0.00
不知道我的回答还有没有用。
你可以试试这个代码,至少它对我有用。
txtSalary.DataBindings.Add(new Binding("text", Bs, "Salary"));
txtSalary.DataBindings[0].FormattingEnabled = true;
txtSalary.DataBindings[0].FormatString = "C2";
输出:
$ 692,235.23`
我知道这个问题已经被问过很多次了,但我还是无法解决这个问题。我对 windows 表格相当陌生,所以请多多包涵。
我正在尝试使用 bindingsource 将我的数据绑定到 datarepeater 中的标签。我想在没有 $ 符号的情况下将字符串显示为货币(例如从 578288 到 578,288.00)。
我试过下面的代码:
Binding b = new Binding("Text", BSource, "PaidAmt");
b.Format += new ConvertEventHandler(DecimalToCurrency);
lblPaidAmount.DataBindings.Add(b);
private void DecimalToCurrency(object sender, ConvertEventArgs cevent)
{
if (cevent.DesiredType != typeof(string)) return;
cevent.Value = ((decimal)cevent.Value).ToString("c");
}
但它仍然将我的字符串输出为 578288。我将调试器步进该函数,它正确地将我的字符串格式化为货币($578,288.00,不完全是我想要的,但至少是某种东西)但它没有显示在标签。
我也试过这个:
lblPaidAmount.DataBindings.Add("Text", BSource, "PaidAmt", true, DataSourceUpdateMode.Never, "", "0.00");
但我无法使用逗号,因为并非每个字符串都具有相同的长度(我知道这也不完全正确)。
如果这些代码有任何问题以及更正方法,有人可以指出我吗?或者任何解决方法?
使用这个得到了我想要的输出:
lblPaidAmount.DataBindings.Add("Text", BSource, "AD1008", true, DataSourceUpdateMode.Never, "", "#,#.00");
我刚刚将字符串格式从 0.00 更改为 #,#.00
早该知道的更好。
您需要数字格式中的千位分隔符 #,0.00
不知道我的回答还有没有用。 你可以试试这个代码,至少它对我有用。
txtSalary.DataBindings.Add(new Binding("text", Bs, "Salary"));
txtSalary.DataBindings[0].FormattingEnabled = true;
txtSalary.DataBindings[0].FormatString = "C2";
输出:
$ 692,235.23`