更改语言后应用程序挂起从“En-Us”到控制面板中的任何全局语言

时间:2012-10-22 11:57:52

标签: c# winforms cultureinfo

我使用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;
        }
        }

更改语言之后......我的应用程序被吊死并且当我尝试评估事物时我无法调试任何事情此事件只调用一次..但是如果尝试在一个小应用程序中,它会在每次语言被更改时出现.... ..事件查看器中也没有显示任何内容。我怎么解决这个问题? ..

0 个答案:

没有答案