以编程方式更改“区域和语言”操作系统设置程序设置。我不反对执行命令行命令,但我只是发现了如何启动区域和语言对话框:control/nameMicrosoft.RegionAndLanguage这是一个语言本地化问题,其中DateTimePicker之类的控件只能使用Windows区域和语言设置(请参阅这里);然而,更新操作系统以匹配应用程序的语言设置并不仅限于此,而是最终的理想目标。建议和/或解决方法将不胜感激。我设法实现的唯一解决方案是修改注册表。在Windows7中,当语言发生变化时,注册表中的子项中会添加一个新条目:HKEY_CURRENT_USERControlPanelDesktop。此键将包含类型为REG_MULTI_SZ的条目PreferredUILanguagesPending,其值将确定UI语言。要应用更改,当前用户需要注销并重新登录。这可以通过以下代码完成:RegistryKeykey=Registry.CurrentUser.OpenSubKey(@"ControlPanelDesktop",true);字符串[]lang={“en-ZA”};key.SetValue("PreferredUILanguagesPending",lang,RegistryValueKind.MultiString);需要先安装语言包才能设置。有关语言包列表,请在此处或此处查看。如果安装了多个语言包,更改UI语言的选项将出现在控制面板>区域和语言>键盘和语言>显示语言中。听起来像更改应用程序的Culture/UICulture应该足够了,例如Thread.CurrentThread.CurrentCulture=newCultureInfo("de-DE");Thread.CurrentThread.CurrentUICulture=newCultureInfo("de-DE");我发现DateTimePicker是一个很好的替代品:http://www.visualhint.com/fieldpackeditor所有系统控件和系统对话框(如OpenFileDialog、PrintDialog等)都会遇到同样的问题,它们无法在.NET中本地化。但是想一想,为什么要改变应用程序的文化?用户可以使用控制面板自行更改他们的区域和语言设置,为什么您的应用程序会覆盖这些设置?我想,你正在考虑你需要什么。应用程序通常需要帮助/尊重/满足用户操作系统设置,而不是为了应用程序的方便而更改它们。查看与您的问题类似的帖子:HowdoIchangethelocale/dateformatforWindowsusers?这是一个语言本地化问题,其中像DateTimePicker这样的控件只能与Windows>RegionalandLanguageSettingsnuts一起使用。严肃的。想想你在这里做什么;我启动了你的程序,你重新配置了我的整个计算机,让一个小的UI元素工作?最好不要问或告诉我?有法律禁止这样做-这可能被视为未经授权的计算机操作。使用适当的控件并正确编程;但不要在那个层面上造成严重破坏。以上就是C#学习教程:编程更改“区域和语言”操作系统设置分享的全部内容,如果对您有用还需要进一步了解C#学习教程,希望大家多多关注对吧-本文来自网络合集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
