Tôi đang sử dụng mã sau đây để hiển thị thời gian đã trôi qua của một tác vụ trong thanh trạng thái trong ứng dụng của tôi.Giá trị String.format() trong nhãn trạng thái hiển thị khác nhau trên Win 7 và Win XP
public void DisplayDuration(TimeSpan duration)
{
string formattedDuration;
if (duration.TotalMilliseconds < 2000)
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds);
else if (duration.TotalSeconds < 60)
formattedDuration = string.Format("{0} sec", duration.TotalSeconds);
else
formattedDuration = string.Format("{0} min", duration.TotalMinutes);
this.TimingLabel.Text = formattedDuration;
}
this.TimingLabel là nhãn trong điều khiển statusStrip ở chân của biểu tượng thắng.
Nhưng tôi nhận được kết quả hoàn toàn khác nhau trên Windows XP vs Windows 7
Windows XP:
của Windows 7
Tại sao các đơn vị xuất hiện trước thời điểm trong Windows 7?
Tôi đã kiểm tra Cài đặt vùng cả hai máy được đặt thành Hoa Kỳ có cùng định dạng Ngày giờ. Làm cho khá chắc chắn nó là cùng một mã chạy trên cả hai máy. Đây là hành vi rất kỳ quặc trong một số mã rất đơn giản.
Là một theo dõi: Tôi thực hiện thay đổi sau để mã của tôi nhưng vẫn có cùng một vấn đề:
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds.ToString());
Bạn có chắc chắn mã giống nhau đang chạy trên cả hai hệ điều hành không? – FishBasketGordo
Cài đặt bổ sung cho "Số" được đặt cho "Số chữ số sau dấu thập phân" cho mỗi hệ thống là gì? – Oded
Im sẽ đi ra ngoài trên một chi ở đây và đoán rằng bạn không hiển thị cho chúng tôi tất cả mã liên quan đến việc gán văn bản cho 'TimingLabel'. – Jamiec