我在数小时,分钟和秒内从Numeric Ups和Downs中获取值。
问题是,例如,如果时间例如是上午9点15分,它将显示为9:15:0
我想要做的是格式化它们,这样如果任何值(小时,分钟或秒)小于10,它将在数字前加0,这样数字显示为09:15:00。 / p>
我尝试的是这个,但它不起作用:
Sub BtnSetClick(sender As Object, e As EventArgs)
lbl8.Visible = True
Dim nmTime As String = nmHour.Value.ToString + nmMin.Value.ToString + nmSec.Value.ToString
lblST.Text.Format(nmTime.ToString, "HH:MM:SS")
lblST.Text = (nmTime)
lblST.Visible = True
End Sub
答案 0 :(得分:10)
你似乎通过将所有内容多次转换为字符串来做一点落后,尝试这样的事情:
Dim ts As new TimeSpan(CInt(nmHour.Value), CInt(nmMin.Value), CInt(nmSec.Value))
lblST.Text = ts.ToString("HH:MM:SS")
TimeSpan.ToString的文档很有用。
编辑:更新了代码以反映Tim关于数据类型的评论。
答案 1 :(得分:2)
试试这个:
Sub BtnSetClick(ByVal sender As Object, ByVal e As EventArgs)
lbl8.Visible = True
Dim nmTime As String = nmHour.Value.ToString().PadLeft(2, '0') + nmMin.Value.ToString().PadLeft(2, '0') + nmSec.Value.ToString().PadLeft(2, '0')
lblST.Text = nmTime
lblST.Visible = True
End Sub
答案 2 :(得分:1)
尝试使用TimeSpan对象,它应该为您完成所有艰苦的工作!
Dim nmTime As New TimeSpan(nmHour.Value, nmMin.Value, nmSec.Value)
lblST.Text = nmTime.ToString
lblST.Visible = True