通过C#更改控制面板中的自定义格式

时间:2017-10-10 16:18:26

标签: c# .net winforms

我知道我的问题很奇怪,但也许我可以在这里找到解决方案。 我通常想在自定义格式中更改一些内容,但我必须采取这么多步骤:

  1. 单击“开始”按钮,然后单击“控制面板”。
  2. 单击“时钟,语言和区域”,然后单击“区域和语言选项”。
  3. 在“格式”选项卡上,单击“其他设置...”
  4. 更改我的设置,然后单击“确定”。 enter image description here
  5. 有没有办法只需点击一下就能做到这一点?我有一些使用Visual Studio编写应用程序的知识。 抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

系统级

如果要在系统级别更改它们,可以使用C#或PowerShell更改HKEY_CURRENT_USER\Control Panel\International的值。

C#示例

Microsoft.Win32.Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\International", 
    "sDecimal", ",");

PowerShell示例

Set-ItemProperty -Path "HKCU:\Control Panel\International" -Name sDecimal -Value ","

主要级别

如果您只想为当前线程范围更改这些值,可以这样设置:

var current = System.Threading.Thread.CurrentThread.CurrentCulture;
var culture = System.Globalization.CultureInfo.CreateSpecificCulture(current.Name); 
culture.NumberFormat.NumberDecimalSeparator = ",";
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = culture;