0

我使用 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 中。我怎么解决这个问题?..

4

0 回答 0