2008-09-18 9 views
11

Dans une application winforms .net 2, quelle est la meilleure façon de définir la culture pour l'ensemble de l'application?
La définition de CurrentThread.CurrentCulture pour chaque nouveau thread est répétitive et sujette aux erreurs.
Idéalement, je voudrais le définir lorsque l'application démarre et l'oublier.Un moyen facile de définir CurrentCulture pour l'ensemble de l'application?

+3

Ceci est probablement une vieille nouvelle, mais il est possible de faire ce que vous voulez dans .NET 4.5 ([voir le lien] (http://msdn.microsoft.com/fr-fr/library/system.globalization.cultureinfo.defaultthreadcurrentculture .aspx)). Vous devez probablement définir 'DefaultThreadCurrentUICulture' et' DefaultThreadCurrentCulture' – nooblar

+1

Je sais que ce sujet est assez ancien, mais tous les nouveaux arrivants peuvent voir: http://stackoverflow.com/questions/28426349/custom-format-for-entire-application – Tariktiri

Répondre

12

La culture d'un thread dans .NET est la culture du système (vue par une seule application/processus). Il n'y a aucun moyen de remplacer cela dans .NET, vous devrez continuer à définir CurrentCulture pour chaque nouveau thread.

+2

> la culture pour le système à proprement parler, la culture correspondant aux paramètres régionaux de l'utilisateur actuel. – Joe

1

Vous pouvez définir l'application culture actuelle de cette façon:

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

Je ne sais pas si ça aide, parce que je l'ai jamais testé avec des fils.

edit: cela ne fonctionne pas. Je pense que vous devez définir la culture actuelle dans chaque fil.

+2

J'ai essayé votre solution et cela n'a fait aucune différence. –

+4

'Application.CurrentCulture' délègue à' Thread.CurrentThread.CurrentCulture' de sorte qu'il ne le définit que pour le thread principal de l'application. – adrianbanks