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?
Répondre
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.
> la culture pour le système à proprement parler, la culture correspondant aux paramètres régionaux de l'utilisateur actuel. – Joe
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.
J'ai essayé votre solution et cela n'a fait aucune différence. –
'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
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
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