2008-09-18 3 views
11

В приложении .net 2 winforms, что такое хороший способ установить культуру для всего приложения?
Настройка CurrentThread.CurrentCulture для каждого нового потока повторяется и подвержена ошибкам.
В идеале я хотел бы установить его, когда приложение запустится и забудет об этом.Простой способ установки CurrentCulture для всего приложения?

+3

Это, вероятно, старые новости, но можно сделать то, что вы хотите в .NET 4.5 ([см. Ссылку] (http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture .aspx)). Вероятно, вам нужно установить «DefaultThreadCurrentUICulture» и «DefaultThreadCurrentCulture» – nooblar 2014-10-31 17:13:05

+1

. Я знаю, что эта тема довольно старая, но все новички могут видеть: http://stackoverflow.com/questions/28426349/custom-format-for-entire-application – Tariktiri 2015-02-13 10:54:11

ответ

12

Культура для потока в .NET - это культура для системы (рассматривается одним приложением/процессом). Невозможно переопределить это в .NET, вам придется продолжить установку CurrentCulture для каждого нового потока.

+2

> культура для системы строго говоря, культура, соответствующая региональным настройкам текущего пользователя. – Joe 2008-09-18 16:11:08

1

Вы можете установить ли приложение текущей культуры так:

static void Main() 
{ 
    System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("fi-FI"); 
    Application.CurrentCulture = cultureInfo; 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new Form1()); 
} 

я не уверен, если это поможет, потому что я никогда не испытывал его нитками.

Редактировать: не работает. Я думаю, вы должны установить текущую культуру в каждом потоке.

Смежные вопросы