2011-01-17 7 views
6

指定したカルチャでアプリケーションを実行すると、アプリケーションを終了せず、ユーザーがシステムのカルチャを変更します(例:小数点記号を "。"から変更します)。 〜に "、"。私のアプリケーションにこのイベントをキャッチする方法。ありがとう。ユーザーがシステムのカルチャを変更したときのイベントの受信方法

注: C#2.0、Windowsフォーム。

答えて

10

あなたはSystemEvents.UserPreferenceChangedイベントを処理することができます

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

感謝。しかし、どのように新しい地域の設定を取得するには? –

+3

私はコードで私の問題を解決します:CultureInfo.CurrentCulture.ClearCachedData(); –

+0

@ Luu、私はその方法について知らなかった...毎日何かを学ぶ;) –

1

あなたはシステム言語の変更を気管切開したい場合、あなたはあなたがに接続することができUserPreferenceChangedイベントが含まれているSystemEventsオブジェクトを持っています。

サンプル:

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

あなたは(あなたが言語間で選択するとしてみてくださいシステムの変更など)の入力言語の変更を追跡する場合は、あなたが使用することができますSystem.Windows.Forms.InputLanguage。 CurrentInputLanguage

サンプル:

string inputLanguage = System.Windows.Forms.InputLanguage.CurrentInputLanguage.LayoutName; 
関連する問題