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?
Odpowiedz
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.
> Kultura dla systemu ściśle mówiąc, kultura odpowiadająca regionalnym ustawieniom bieżącego użytkownika. – Joe
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.
Próbowałem Twojego rozwiązania i nie miało to żadnego znaczenia. –
'delegaci Application.CurrentCulture' do' Thread.CurrentThread.CurrentCulture' więc tylko ustawia go do głównego wątku aplikacji. – adrianbanks
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
Wiem, że ten temat jest dość stary, ale wszyscy nowi widzowie mogą zobaczyć: http://stackoverflow.com/questions/28426349/custom-format-for-entire-application – Tariktiri