为DataGridView列使用自定义货币符号

本文关键字:自定义 货币 符号 DataGridView | 更新日期: 2023-09-27 17:49:33

我想格式化一个显示货币值的DataGridView列,但是我想使用一个自定义的货币前缀,该前缀目前没有任何文化定义。我希望我的值看起来像这样:

Mn. 2,300.00
Mn. 40,259.22
Mn. 6.33
Mn. 2,000,203.19

显然,Mn.是我想要添加的前缀。除了这个自定义之外,值本身的格式与任何其他货币一样(即小数点后2位,每3位数字后面有逗号等)

为DataGridView列使用自定义货币符号

(这个自我回答之前是由问题OP作为问题的编辑发布的。内容已迁移到此回答)

var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();  
format.CurrencySymbol = "Mn. ";  
qBDDataGridView.Columns["Base Selling Price"].DefaultCellStyle.FormatProvider = format;  
qBDDataGridView.Columns["Base Selling Price"].DefaultCellStyle.Format = "c";  

上面将在该DataGridView中格式化名为"Base Selling Price"的列,以使用自定义符号'Mn.'表示货币。希望这对其他人也有用。这要归功于Jason Whitted的回答

您需要管理自己的NumberFormatInfo对象,它包含一个CurrencySymbol属性。你可以把这个对象传递给decimal.ToString()方法。

var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
format.CurrencySymbol = "Mn. ";
var amount = 12345.67m;
Console.WriteLine(amount.ToString("C", format));