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

时间:2011-01-17 09:17:35

标签: c# .net cultureinfo

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

注意: C#2.0,Windows Form。

2 个答案:

答案 0 :(得分:12)

您可以处理SystemEvents.UserPreferenceChanged事件:

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

答案 1 :(得分:2)

如果要跟踪系统语言更改,那么您将拥有SystemEvents对象,其中包含您可以附加的UserPreferenceChanged事件。

样品:

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

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

样品:

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