2008-09-18 17 views
11

En una aplicación winforms .net 2, ¿cuál es una buena manera de establecer la cultura para toda la aplicación?
Configuración de CurrentThread.CurrentCulture para cada nuevo hilo es repetitivo y propenso a errores.
Idealmente, me gustaría configurarlo cuando la aplicación se inicie y olvidarlo.¿Forma fácil de establecer CurrentCulture para toda la aplicación?

+3

Esto es probablemente una noticia antigua, pero es posible hacer lo que desee en .NET 4.5 ([ver enlace]) (http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture .aspx)). Probablemente necesites configurar 'DefaultThreadCurrentUICulture' y' DefaultThreadCurrentCulture' – nooblar

+1

Sé que este tema es bastante antiguo, pero todos los recién llegados pueden ver: http://stackoverflow.com/questions/28426349/custom-format-for-entire-application – Tariktiri

Respuesta

12

La cultura de un hilo en .NET es la cultura del sistema (como se ve en una sola aplicación/proceso). No hay forma de anular eso en .NET, tendrá que continuar configurando CurrentCulture para cada nuevo hilo.

+2

> la cultura para el sistema estrictamente hablando, la cultura correspondiente a la configuración regional del usuario actual. – Joe

1

Puede configurar la aplicación actual cultura de esta manera:

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

No estoy seguro de si esto ayuda, porque nunca he probado con hilos.

editar: no funciona. Creo que debes establecer la cultura actual en cada hilo.

+2

Intenté su solución y no hizo ninguna diferencia. –

+4

'Application.CurrentCulture' delega a' Thread.CurrentThread.CurrentCulture' por lo que solo lo establece para el hilo principal de la aplicación. – adrianbanks

Cuestiones relacionadas