2008-09-18 12 views
11

W aplikacji WinFity .net 2, jaki jest dobry sposób na ustawienie kultury dla całej aplikacji?
Ustawienie CurrentThread.CurrentCulture dla każdego nowego wątku jest powtarzalne i podatne na błędy.
Idealnie chciałbym ustawić, gdy aplikacja się uruchomi i zapomni o tym.Łatwy sposób na ustawienie CurrentCulture dla całej aplikacji?

+3

Jest to prawdopodobnie stary news, ale jest to możliwe, aby robić to, co chcesz w .NET 4.5 ([patrz link] (http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture .aspx)). Prawdopodobnie musisz ustawić zarówno "DefaultThreadCurrentUICulture" i "DefaultThreadCurrentCulture" – nooblar

+1

Wiem, że ten temat jest dość stary, ale wszyscy nowi widzowie mogą zobaczyć: http://stackoverflow.com/questions/28426349/custom-format-for-entire-application – Tariktiri

Odpowiedz

12

Hodowlę na gwincie w NET jest do hodowli w systemie (jak widać w pojedynczej aplikacji/procesu). Nie ma sposobu, aby to zmienić w .NET, będziesz musiał kontynuować ustawianie CurrentCulture dla każdego nowego wątku.

+2

> Kultura dla systemu ściśle mówiąc, kultura odpowiadająca regionalnym ustawieniom bieżącego użytkownika. – Joe

1

Można zestaw aplikacji nurtu kulturowego w ten sposób:

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()); 
} 

Nie jestem pewien, czy to pomaga, bo nigdy nie testowałem go z wątków.

edytuj: to nie działa. Myślę, że trzeba ustawić aktualną kulturę w każdym wątku.

+2

Próbowałem Twojego rozwiązania i nie miało to żadnego znaczenia. –

+4

'delegaci Application.CurrentCulture' do' Thread.CurrentThread.CurrentCulture' więc tylko ustawia go do głównego wątku aplikacji. – adrianbanks