我有一个相当标准的BindingSource/DataGridView组合。 bindingSource具有必须在DataGridView中作为货币显示的十进制类型属性。对于一个测试,我想看看是什么样子,如果我使用了一个€作为货币格式,而不是£DataGridView无法显示正确的cultureinfo
文化信息我的问题是,虽然我编程方式更改当前线程的的CurrentUICulture(我的应用程序只有一个线程),我的DataGridView仍然显示为£。
,我创建了下面的代码片段设计者:
this.columnPriceValue = new Forms.DataGridViewTextBoxColumn();
this.columnPriceValue.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
this.columnPriceValue.DataPropertyName = "Value";
dataGridViewCellStyle2.Format = "C4";
...
在我的主要形式的构造函数我根据计算器的答案的CurrentUICulture设置为荷兰文化How to change CurrentCulture at runtime?
System.Threading.Thread.CurrentThread.CurrentUICulture =
CultureInfo.GetCultureInfo(0x0013);
因为GBP标志仍然显示我在将数据添加到bindingsource之前检查了currencySymbol:
public void ShowPrices(IEnumerable<Price> prices)
{
string txt = System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.CurrencySymbol;
Debug.WriteLine(txt);
this.bindingSource1.DataSource = prices;
...
调试器输出窗口显示€仍然是货币符号,但DataGridview仍显示£。
如何让它显示欧元符号?
打我吧。 +1;) – OhBeWise