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

Leo*_* Vo 8 .net c# cultureinfo

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

注意: C#2.0,Windows窗体.

Tho*_*que 13

你可以处理这个SystemEvents.UserPreferenceChanged事件:

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

  • 我用代码解决了我的问题:CultureInfo.CurrentCulture.ClearCachedData(); (4认同)
  • 我遇到了 ClearCachedDate 的问题,发现这个 SO 解决了这个问题。我不得不启动一个任务并返回缓存清除的结果。http://stackoverflow.com/questions/1370533/cultureinfo-clearcacheddata-does-not-work-it-randomly-sometimes-works-sometimes (2认同)