我在VB.net中使用Target Framework 3.5开发了一个Windows窗体应用程序。应用程序在Windows 7,8,8.1,10中运行良好。但在Windows XP中,它显示错误:
文化名称' en-in'不支持
我检查了代码,发现导致错误的行是:
My.Application.ChangeCulture("en-IN")
当我尝试删除此行时,许多表单和报告都显示错误或错误信息。所以我无法删除这一行。
有没有办法在Windows中安装或加载此文化?
答案 0 :(得分:1)
en-IN
不是已知的文化代码。
您可以查看所有现有代码in this list。
您可以使用CultureAndRegionInfoBuilder
创建自定义文化,但这是非常不推荐的。
// Create a new Culture, with the name you desire
CultureAndRegionInfoBuilder cib = new CultureAndRegionInfoBuilder("en-IN", CultureAndRegionModifiers.None);
// Load all defaults from en-US
CultureInfo ci = new CultureInfo("en-US");
cib.LoadDataFromCultureInfo(ci);
// Populate the new CultureAndRegionInfoBuilder object with region information.
RegionInfo ri = new RegionInfo("US");
cib.LoadDataFromRegionInfo(ri);
// Now you can make changes, or finish.
// Changes can be currency, RegionName, etc.
// Finish
cib.Register();
this article解释了如何做到这一点。
或者您可以将自定义文化设置为:
Dim customCulture As Globalization.CultureInfo = New Globalization.CultureInfo("en-US")
customCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy"
customCulture.DateTimeFormat.LongDatePattern = "dd-MMM-yyyy HH:mm:ss"
customCulture.DateTimeFormat.ShortTimePattern = "HH:mm:ss"
customCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss"
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture
System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture