我使用 C# 创建了一个 WinForms 应用程序。当我尝试更改文化信息时,我的应用程序被挂起。
Microsoft.Win32.SystemEvents.UserPreferenceChanged += new
Microsoft.Win32.UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
void SystemEvents_UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e)
{
if (!PreviousInstance())
{
CultureInfo ObjCulture = new CultureInfo(CultureInfo.InvariantCulture.IetfLanguageTag, false);
Thread.CurrentThread.CurrentCulture = ObjCulture;
Application.CurrentCulture = ObjCulture;
}
}
public void INIT()
{
CultureInfo objCultureInfo = null;
try
{
objCultureInfo = new CultureInfo("en-US", false);
objCultureInfo.NumberFormat.NumberDecimalSeparator = ".";
objCultureInfo.NumberFormat.NegativeSign = "-";
objCultureInfo.NumberFormat.NumberNegativePattern = 1; //1 stands for -100.
Application.CurrentCulture = objCultureInfo;
}
}
更改语言后......我的应用程序被挂起,当我尝试评估事物时我无法调试任何东西这个事件只调用了一次......但是如果在一个小应用程序中尝试它每次更改语言时都会出现......什么都没有也显示在 Eventviewer 中。我怎么解决这个问题?..