Sto usando il seguente codice per visualizzare il tempo trascorso di un'attività nella barra di stato nella mia applicazione.Valore String.format() nell'etichetta statusstrip visualizzata in modo diverso su 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 è un'etichetta nel controllo StatusStrip nel piè del winform.
Ma ottengo risultati completamente differenti su Windows XP vs Windows 7
Windows XP:
di Windows 7
Perché le unità indicate la prima volta in Windows 7?
Ho verificato le Impostazioni internazionali entrambe le macchine sono impostate su Stati Uniti con la stessa formattazione Date Time. Assicurarsi che sia lo stesso codice in esecuzione su entrambe le macchine. Questo è un comportamento molto strano in un codice molto semplice.
Come un follow-up: ho fatto la seguente modifica al mio codice, ma hanno ancora lo stesso problema:
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds.ToString());
Sei assolutamente sicuro che lo stesso codice sia in esecuzione su entrambi i sistemi operativi? – FishBasketGordo
Cosa impostano le impostazioni aggiuntive per "Numeri" per "Numero di cifre dopo il decimale" per ciascun sistema? – Oded
Ho intenzione di uscire su un arto qui e suppongo che tu non ci mostri tutto il codice coinvolto nell'assegnazione del testo a "TimingLabel". – Jamiec