2011-01-17 8 views

Antwort

10

Sie können die SystemEvents.UserPreferenceChanged Ereignis behandeln:

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

Dank. Aber wie bekommt man neue regionale Einstellungen? –

+3

Ich löse mein Problem mit dem Code: CultureInfo.CurrentCulture.ClearCachedData(); –

+0

@ Lu Lu, wusste ich nicht über diese Methode ... lernen etwas jeden Tag;) –

1

Wenn Sie Systemsprache Änderungen an Trach wollen, dann müssen Sie SystemEvents Objekt, das UserPreferenceChanged Ereignis enthält, die Sie anhängen können.

Probe:

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

Wenn Sie Eingabesprache Änderungen verfolgen möchten (wie Änderungen in der System versuchen, wenn Sie zwischen den Sprachen wählen), dann können Sie verwenden: System.Windows.Forms.InputLanguage. CurrentInputLanguage

Probe:

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