2012-11-13 24 views
35

Tôi muốn đặt thông tin văn bản mặc định cho lớp đó hoặc cho toàn bộ ứng dụng.cách đặt thông tin văn bản mặc định cho toàn bộ ứng dụng C#

Ví dụ ở Thổ Nhĩ Kỳ 3,2 = bằng tiếng Anh 3.2

để ứng dụng sử dụng địa phương của tôi, nhưng tôi muốn nó để sử dụng như mặc định

System.Globalization.CultureInfo.InvariantCulture 

Làm thế nào tôi có thể đặt nó vào đó như là mặc định cho rằng lớp cụ thể hoặc cho toàn bộ ứng dụng

+1

Tôi phải thêm rằng các phiên bản không bất biến của .ToString() chậm hơn nhiều và "Thread.CurrentThread.CurrentCulture" không tạo sự khác biệt. – gatopeich

+0

Bản sao có thể có của [Có cách nào thiết lập văn hóa cho toàn bộ ứng dụng không? Tất cả các chủ đề hiện tại và chủ đề mới?] (Http://stackoverflow.com/questions/468791/is-there-a-way-of-setting-culture-for-a-whole-application-all-current-threads-a) –

Trả lời

31

Không dành cho toàn bộ ứng dụng hoặc một lớp cụ thể.

CurrentUICulture và CurrentCulture có thể được đặt trên mỗi luồng như được thảo luận tại đây Is there a way of setting culture for a whole application? All current threads and new threads?. Bạn không thể thay đổi tất cả InvariantCulture.

Mẫu mã thay đổi nền văn hóa cho thread hiện hành:

CultureInfo ci = new CultureInfo(theCultureString); 
Thread.CurrentThread.CurrentCulture = ci; 
Thread.CurrentThread.CurrentUICulture = ci; 

Đối với lớp bạn có thể đặt/khôi phục văn hóa bên trong các phương pháp quan trọng, nhưng nó sẽ được an toàn đáng kể để sử dụng ghi đè thích hợp cho hầu hết các phương pháp định dạng liên quan mà mất văn hóa làm một trong các đối số:

(3.3).ToString(new CultureInfo("fr-FR")) 
+0

vì vậy làm thế nào để tôi đặt nó cho cửa sổ biểu mẫu mà tôi đang làm việc. nó không nhận ra chủ đề – MonsterMMORPG

+0

tôi không thực sự quan tâm đến việc xác định cho mỗi lần chuyển đổi. không thể thiết lập nó cho chuỗi biểu mẫu. bạn biết khi nào bạn tạo một dự án biểu mẫu cửa sổ mới? – MonsterMMORPG

+0

@MonsterMMORPG, cái gì/ở đâu không nhận ra chuỗi? –

37

Với 4.0, bạn sẽ cần tự mình quản lý bằng cách đặt văn hóa cho mỗi chuỗi như mô tả Alexei. Nhưng với 4.5, bạn có thể xác định một nền văn hóa cho appdomain và đó là cách ưu tiên để xử lý điều này. Các apis có liên quan là CultureInfo.DefaultThreadCurrentCultureCultureInfo.DefaultThreadCurrentUICulture.

+0

Cảm ơn tất cả, nhưng phiên bản 4.0 CurrentThread ... không hoạt động đối với tôi. – gatopeich

Các vấn đề liên quan