0

我发现了很多关于以编程方式强制 .NET WinForm 程序(C#、.NET 4.5)的文化的帖子。

有没有办法在没有代码的情况下强制培养文化?

4

2 回答 2

4

Windows 7 上的过程(对话框和名称已多次更改):

  • 开始 + 控制面板
  • 单击区域和语言
  • 单击“管理”选项卡
  • 单击“更改系统区域设置”按钮
  • 选择以“英语”开头并与您的客户居住地相匹配的语言环境之一。

在此之后启动的任何程序都将使用您在此对话框中选择的默认区域性进行初始化,这将锻炼您的附属程序集。

请注意,按照评论中的建议,更改 Thread.CurrentThread.CurrentCulture 和 CurrentUICulture 属性并不是真正的替代品。线程池线程仍然将自己初始化为系统语言环境。通过添加 CultureInfo.DefaultThreadCurrentCulture 和 DefaultThreadCurrentUICulture 属性,最终在 .NET 4.5 中解决了一个非常讨厌的问题。

请注意,许多本机 Windows 对话框(如 MessageBox 和 OpenFileDialog)仍会以您的操作系统语言显示文本。您需要购买 Windows Ultimate 的许可证并安装语言包以进行更改。MSDN 订阅是获得用户启动的特定语言操作系统的好方法。

于 2012-09-28T22:01:14.403 回答
0

另一个可能对您有用的奇怪选项是创建引导程序 exe,它将设置机器人文化设置(CurrentCulture 和 CurrentUICulture),然后加载您的实际 exe 并调用正确类的 Main 函数。具有仅在主线程上设置文化的所有缺点,但可能可以作为权宜之计。

于 2012-09-28T22:58:22.567 回答