J'utilise le code suivant pour afficher le temps écoulé d'une tâche dans la barre d'état de mon application.Valeur String.format() dans l'étiquette statusstrip affichée différemment sur Win 7 vs 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 est une étiquette dans le contrôle StatusStrip dans le pied de la WinForm.
Mais je reçois complètement différents résultats sur Windows XP vs Windows 7
Windows XP:
de Windows 7
Pourquoi les unités qui apparaissent avant l'heure dans Windows 7?
J'ai coché les paramètres régionaux les deux machines sont définies sur US avec le même format de date et heure. Assurez-vous que le même code s'exécute sur les deux machines. C'est un comportement très étrange dans un code très simple.
En guise de suivi: Je fait les modifications suivantes à mon code, mais toujours le même problème:
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds.ToString());
Etes-vous absolument sûr que le même code s'exécute sur les deux systèmes d'exploitation? – FishBasketGordo
Quels sont les paramètres supplémentaires pour "Numéros" définis pour "Nombre de chiffres après décimales" pour chaque système? – Oded
Je vais aller sur un membre ici et devinez que vous ne nous montrez pas tout le code impliqué dans l'attribution de texte à 'TimingLabel'. – Jamiec