Tôi gần như có cùng một vấn đề như anh chàng trong luồng này:C# đôi hiển thị dấu phẩy thay vì thời gian
Convert Float that has period instead of comma?
Vì vậy mà tôi
double x = 234.4;
string y = x.ToString();
tôi nhận được y == "234,4"
;
Thậm chí tệ hơn ... Double.Parse("234.4")
ném ngoại lệ.
Tôi đã viết rất nhiều mã trước khi tôi được yêu cầu sử dụng dấu chấm thay vì dấu phẩy, vì vậy tôi muốn có một số cách để thay đổi CultureInfo của tôi ở mức toàn cầu.
Có một số cài đặt trong các dự án mà tôi có thể thực hiện không?
Tôi đã thử:
Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Họ loại công việc. Chúng hoạt động cho hầu hết các phần của ứng dụng, nhưng tất cả các điều khiển nằm trong tab TabControl của tôi vẫn muốn sử dụng máy tính của tôi Localized CultureInfo.
Bất kỳ Ý tưởng nào về cách giải quyết vấn đề này?
Thông thường, hãy đặt CultureInfo trên luồng là đủ. Có lẽ bạn đang chạy mã đặt cultureinfo trên một luồng khác so với GUI? –
Huh! Đó thực sự là trường hợp. Cảm ơn! Tôi nghĩ rằng thiết lập Application.CurrentCulture sẽ ảnh hưởng đến tất cả các chủ đề. .... và nó có, nhưng chỉ _if_ tôi đặt nó trước khi tôi tạo biểu mẫu của tôi vì một lý do nào đó. Tôi đã đặt nó bên dưới việc tạo biểu mẫu (nhưng trước khi chạy). Dù sao, trường hợp đã đóng! Cảm ơn bạn lần nữa! – Presidenten