0

我正在使用 c#.net3.5,我想将 currentculture 设置的小数分隔符从逗号更改为点,但同时我希望用户可以在 numericupdown 控件中使用逗号作为小数分隔符。所以我试图改变我的文化设置如下

CultureInfo newUIculture = new CultureInfo("tr-TR");
newUIculture.NumberFormat.CurrencyDecimalSeparator = ",";
newUIculture.NumberFormat.CurrencyGroupSeparator = ".";
newUIculture.NumberFormat.NumberDecimalSeparator = ",";
newUIculture.NumberFormat.NumberGroupSeparator = ".";
newUIculture.NumberFormat.PercentDecimalSeparator = ",";
newUIculture.NumberFormat.PercentGroupSeparator = ".";
//Application.CurrentUICulture = newUIculture;//this line giving error.
Thread.CurrentThread.CurrentUICulture = newUIculture;//this line doesn't work

CultureInfo newCulture = new CultureInfo("tr-TR");
newCulture.NumberFormat.CurrencyDecimalSeparator = ".";
newCulture.NumberFormat.CurrencyGroupSeparator = "";
newCulture.NumberFormat.NumberDecimalSeparator = ".";
newCulture.NumberFormat.NumberGroupSeparator = "";
newCulture.NumberFormat.PercentDecimalSeparator = ".";
newCulture.NumberFormat.PercentGroupSeparator = "";
Application.CurrentCulture = newCulture;//this one work fine

当前的文化设置工作正常,但 currentUIculture 设置在我分配参数时不起作用。如何使用我提供的参数配置这两个设置?

4

2 回答 2

0

CurrentUICulture 用于选择加载哪些资源文件。CurrentCulture 确定依赖于文化的函数的结果,例如格式化日期和数字。所以你看到的行为是预期的:你应该使用 CurrentCulture。

于 2014-04-22T11:16:24.287 回答
0

偷看System.Windows.Forms.Application.CurrentCulture,它只是一个薄薄的包装Thread.CurrentThread.CurrentCulture,并且没有这样的东西System.Windows.Forms.Application.CurrentUICulture,这可以解释为什么你的注释掉的行会为你抛出错误。

如果“不起作用”,您的意思是“不会像我想要的那样更改小数点分隔符”,那么您已经回答了自己的问题:CurrentCulture是控制它的东西,而不是CurrentUICulture. 拼写不同是有原因的。

于 2014-04-22T11:18:30.067 回答