2011-01-17 15 views

Odpowiedz

10

można obsłużyć zdarzenia SystemEvents.UserPreferenceChanged:

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

Dzięki. Ale jak uzyskać nowe ustawienia regionalne? –

+3

Rozwiązuję mój problem za pomocą kodu: CultureInfo.CurrentCulture.ClearCachedData(); –

+0

@ Lu Lu, nie wiedziałem o tej metodzie ... ucz się czegoś każdego dnia;) –

1

Jeśli chcesz Trach zmiany języka systemu wtedy masz SystemEvents obiekt, który zawiera UserPreferenceChanged wydarzenia można dołączyć do.

Próbka:

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

Jeśli chcesz śledzić zmiany języka wprowadzania (jak zmiany w systemie spróbować kiedy wybrać pomiędzy językami), a następnie można użyć: System.Windows.Forms.InputLanguage. CurrentInputLanguage

Próbka:

string inputLanguage = System.Windows.Forms.InputLanguage.CurrentInputLanguage.LayoutName; 
Powiązane problemy