Более чистое решение было бы использовать ToString
на TimeSpan
экземпляре и использовать строку формата, чтобы получить желаемый результат.
Вот ссылка, показывающая некоторые примеры различных форматов для создания желаемого форматирования.
Я искал, но, похоже, что-то не хватает. Я пытаюсь отобразить цифровые часы, которые начнут отсчет, когда вы нажмете кнопку запуска. Это легко. Я не могу понять, что если я хочу начать часы, скажем, 00: 00: 05: 00, как только часы достигнут своей первой секунды, он отображает 00: 00: 51: 00, а не 00:00: 6:00. Используемый мной код
TimeSpan ts2 = sw2.Elapsed;
currentTime2 = String.Format("{0:}"+hour.ToString("D1")+":{1:}"+min.ToString("D1")
+":{2:}"+sec.ToString("D1")+":{3:}"+ms.ToString("D1"),
ts2.Hours, ts2.Minutes, ts2.Seconds, ts2.Milliseconds / 10);
txtClock2.Text = currentTime2;
где hour, min, sec, ms - int, заданное значение 0 в первом случае и 0, за исключением int sec, которому присваивается значение 5 во втором случае.
Есть идеи?