如何在用户更改系统文化时接收事件

当我的应用程序使用指定的文化运行时。 不要关闭应用程序,用户更改系统的文化,例如:从“。”更改数字小数点分隔符。 至 ”,”。 如何我的应用程序可以捕获此事件。 谢谢。

注意: C#2.0,Windows窗体。

您可以处理SystemEvents.UserPreferenceChanged事件:

 void SystemEvents.UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) { // Regional settings have changed if (e.Category == UserPreferenceCategory.Locale) { ... } } 

如果要跟踪系统语言更改,则可以使用SystemEvents对象,该对象包含可以附加到的UserPreferenceChanged事件。

样品:

 Microsoft.Win32.SystemEvents.UserPreferenceChanged += new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged); 

如果要跟踪输入语言更改(例如,在选择语言时尝试系统更改),则可以使用:System.Windows.Forms.InputLanguage。 CurrentInputLanguage

样品:

 string inputLanguage = System.Windows.Forms.InputLanguage.CurrentInputLanguage.LayoutName;