2011-01-17 20 views
6

Uygulamam belirli bir kültürle çalıştırıldığında. Uygulamayı kapatmayın, kullanıcı sistem kültürünü değiştirir, örn .: ondalık ayırıcıyı "." Dan değiştir. "," ye. Uygulamam nasıl bu olayı yakalayabilir. Teşekkürler.Kullanıcı sistem kültürünü değiştirdiğinde olay nasıl alınır

Notlar: C# 2.0, Windows Form. Eğer o zaman SystemEvents sen ekleyebileceğiniz UserPreferenceChanged olayı içeren nesne var sistem dili değişiklikleri trach istiyorsanız

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

cevap

10

Sen SystemEvents.UserPreferenceChanged olayı işleyebilir.

Örnek:

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

sen (siz dilleri arasında seçim yaparken denemek sisteminde değişiklik gibi) giriş dili değişiklikleri izlemek istiyorsanız, o zaman kullanabilirsiniz: System.Windows.Forms.InputLanguage. CurrentInputLanguage

Örnek:

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

teşekkürler. Ancak yeni bölgesel ayarlar nasıl alınır? –

+3

Sorunumu şu kodla çözüyorum: CultureInfo.CurrentCulture.ClearCachedData(); –

+0

@Lu Lu, Bu yöntemi bilmiyordum ... her gün bir şeyler öğrenmek;) –

İlgili konular