是否可以在WinForms中覆蓋CurrentCulture
和CurrentUICulture
的特定控件?所以這個特定的控制使用不同的文化?覆寫WinForms控件的CurrentCulture
1
A
回答
2
您可以通過實例化您選擇的CultureInfo並將其作爲參數傳遞給格式化函數(如ToString)來實現。只是不要將它分配給Thread.CurrentThread.CurrentCulture或Thread.CurrentThread.CurrentUICulture,因爲這樣會改變應用程序的文化。
在您的代碼:
CultureInfo myCulture = CultureInfo.GetCultureInfo("en-US");
Console.WriteLine(DateTime.Now.ToString(myCulture));
如果你的代碼執行外部代碼,並要強制該代碼使用在內部選擇的文化,你可以做,通過創建一個新的線程,分配文化該線程然後讓該線程執行代碼。只要確保注意這種方法帶來的線程問題。
螺紋樣品:
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);
作爲最後的點;我不知道爲什麼你想重寫CurrentCulture,但我建議你在做之前三思。用戶習慣於看到根據其區域設置格式化的數字;可能會引起混淆,特別是如果它僅發生在UI的一部分中。
0
我不認爲你可以爲單一控制做到這一點,但對於當前線程可以切換這樣的:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("DE");
相關問題
- 1. 覆蓋WinForms消息框控件
- 2. 在DirectX內容上覆蓋WinForms控件
- 3. 在winforms中創建覆蓋控件
- 4. WinForms覆蓋控制框
- 5. WinForms控件的ObservableCollection
- 6. Devexpress winforms控件rendermode
- 7. 空間winforms控件
- 8. C#WinForms ErrorProvider控件
- 9. C#winforms numericupdown控件
- 10. 複製控件Winforms
- 11. WinForms中的WPF控件
- 12. 編輯控件 - C#的WinForms
- 13. Tab控件+ WinForms中的DataGridView
- 14. C# - 的WinForms WebBrowser控件
- 15. WinForms的iPhone UI控件
- 16. Winforms中的控件碰撞
- 17. 無法寫入數據到VC++ winforms中的其他控件
- 18. 如何覆蓋一些默認的CurrentCulture值
- 19. ParseExact和CurrentCulture?
- 20. CurrentCulture和SecurityException
- 21. 如何覆蓋正在寫的控件的control_Change事件?
- 22. 免費winforms包/控件
- 23. 本書學習Winforms控件
- 24. Winforms擴展控件屬性
- 25. WinForms控件示例項目
- 26. Winforms是否有DayCalendar控件?
- 27. Infragistics升級winforms控件
- 28. Winforms控件佔位符
- 29. winforms控件大小限制
- 30. Winforms控件佈局問題
重讀你的問題,我意識到,我可能誤會你......我首先閱讀它,就好像你正在製作一個你想擁有另一種文化的控件一樣,但是現在我意識到你可能想要有一個現有的控件(如Button)使用不同的文化行爲...... – 2009-05-29 10:03:47
最後一件事是正確的。我有一個現有的控件(沒有訪問源),我希望這個控件使用不同的文化 – 2009-05-29 12:56:46