Est-il possible de remplacer le CurrentCulture
et le CurrentUICulture
pour un contrôle spécifique dans WinForms? Alors que ce contrôle spécifique utilise une culture différente?Remplacer le contrôle CurrentCulture pour WinForms
Répondre
Vous pouvez obtenir cela en instanciant le CultureInfo de votre choix et le transmettre en tant que paramètre aux fonctions de formatage (telles que ToString). Ne l'affectez pas à Thread.CurrentThread.CurrentCulture ou Thread.CurrentThread.CurrentUICulture, car cela changera la culture de l'application en tant que telle.
Dans votre code:
CultureInfo myCulture = CultureInfo.GetCultureInfo("en-US");
Console.WriteLine(DateTime.Now.ToString(myCulture));
Si votre code exécute le code externe, et que vous voulez forcer ce code à utiliser votre culture choisie en interne, vous pouvez le faire en créant un nouveau thread, affecter la culture ce thread, puis avoir ce thread exécuter le code. Assurez-vous simplement de prêter attention aux problèmes de threading qui vient avec cette approche.
échantillon du fil:
string formattedDate = string.Empty;
Thread t = new Thread(delegate()
{
// call external code without specifying culture
formattedDate = DateTime.Now.ToString();
waitHandle.Set();
});
t.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
t.Start();
waitHandle.WaitOne(); // wait for the thread to finish
Console.WriteLine(formattedDate);
En tant que dernier point; Je ne sais pas pourquoi vous voulez remplacer la CurrentCulture, mais je vous suggère de réfléchir à deux fois avant de le faire. Les utilisateurs sont habitués à voir des dates et des nombres mis en forme en fonction de leurs paramètres régionaux; changer ce qui pourrait être déroutant, surtout si cela se produit dans une partie de l'interface utilisateur.
Je ne pense pas que vous pouvez le faire pour le contrôle unique, mais pour le thread courant, vous pouvez passer comme ceci:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("DE");
Salut, je sais comment le régler pour l'ensemble du fil, mais cela ne m'aide pas, comme je dois changez-le pour un contrôle spécial sur mon formulaire. –
- 1. Un moyen facile de définir CurrentCulture pour l'ensemble de l'application?
- 2. Recommandation pour le contrôle d'édition/de coloration syntaxique tiers - WinForms
- 3. Gestion des exceptions globales pour le contrôle des winforms
- 4. C# Winforms Contrôle Transparent permettant le Clic
- 5. IE8, Flash et le contrôle WinForms WebBrowser
- 6. Contrôle de traçage gratuit pour WinForms?
- 7. Verrouiller un contrôle winforms
- 8. Collision de contrôle dans winforms
- 9. Contrôle vs UserControl dans WinForms?
- 10. Regex pour remplacer le charabia
- 11. Affichage d'un indice pour un contrôle d'édition winforms C#
- 12. Comment empêcher un contrôle Winforms d'écouter le clavier
- 13. Contrôle de visualisation du texte diff pour WinForms ou WPF
- 14. Contrôle WinForms pour l'édition de la carte-image
- 15. Quel Winforms contrôle pour afficher le message avec le formatage html mineur?
- 16. Liaisons XAML WPF et affichage CurrentCulture
- 17. VB.Net Winforms Variable de contrôle utilisateur
- 18. Utilisation d'un contrôle WPF personnalisé dans WinForms
- 19. Contrôle WinForms intégré à la sous-classe?
- 20. Visionneuse PDF intégrée dans un contrôle WinForms
- 21. recherche pour WinForms datagridview
- 22. Contrôle de l'emplacement d'une info-bulle Winforms
- 23. WPF RichTextBox - Remplacer le texte sélectionné par un contrôle personnalisé
- 24. Comment remplacer uniquement ItemTemplate dans le contrôle personnalisé
- 25. Contrôle de tabulation + DataGridView dans WinForms
- 26. Comment obtenir l'index de contrôle dans WinForms?
- 27. Comment faire pour limiter la zone de contrôle client dans un contrôle WinForms personnalisé
- 28. Remplacer le gestionnaire d'événements Button_click
- 29. Comment faire pour que le contrôle WPF DatePicker ressemble à son cousin WinForms?
- 30. Fenêtre de recherche pop-up modale pour remplacer le contrôle déroulant ASP.NET
lecture votre question je me rends compte que je vous ai mal compris ... Je d'abord lu comme si vous faites un contrôle que vous voulez avoir une autre culture, mais maintenant je me rends compte que vous voulez peut-être avoir un contrôle existant (comme Button) agir en utilisant une culture différente ... –
dernière chose est correcte. J'ai un contrôle existant (sans accès à la source) et je voudrais que ce contrôle utilise une culture différente –