Estoy usando el siguiente código para mostrar el tiempo transcurrido de una tarea en la barra de estado en mi aplicación.String.format() valor en la etiqueta statusstrip se muestra de forma diferente en 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 es una etiqueta en el control StatusStrip en el pie de la WinForm.
Pero consigo resultados completamente diferentes en Windows XP vs Windows 7
Windows XP:
de Windows 7
¿Por qué las unidades que aparecen antes de la hora en Windows 7?
He comprobado la configuración regional ambas máquinas están configuradas en EE. UU. Con el mismo formato de fecha y hora. Asegúrese de que sea el mismo código que se ejecuta en ambas máquinas. Este es un comportamiento muy extraño en un código muy simple.
Como seguimiento: Me hizo el siguiente cambio en mi código, pero todavía tiene el mismo problema:
formattedDuration = string.Format("{0} ms", duration.TotalMilliseconds.ToString());
¿Está absolutamente seguro de que el mismo código se está ejecutando en ambos sistemas operativos? – FishBasketGordo
¿Qué establece la configuración adicional para "Números" para "Número de dígitos después del decimal" para cada sistema? – Oded
Voy a salir de una extremidad aquí y supongo que no nos está mostrando todo el código involucrado en la asignación de texto a 'TimingLabel'. – Jamiec