我有一个带有显示Timespan值(持续时间)的文本框的计时器。 当我停止计时器时,我想用UpDown控件编辑Timespan的值。 我想要这样的东西:
但上面的控件是一个datetimePicker,其Format属性设置为“Custom”,CustomFormat属性设置为“HH:mm:ss”,ShowUpDown属性设置为true。
因此它只能显示dateTime值。
我想让它显示Timespan值(例如“32.23:59:59”),并使用UpDown控件来编辑秒或分钟,或者根据光标标记的小时或天数。
这怎么可能?
我是否必须从头开始创建自定义控件?
提前致谢。
已编辑:经过大量思考和实验后,我发现如果DomainUpDown控件具有SelectionStart和SelectionLength方法,则可以使用DomainUpDown控件编辑TimeSpan。
I submitted such a proposal to the Visual Studio UserVoice site. Please vote up for such a feature!
答案 0 :(得分:1)
使用DateTimePicker,但设置以下属性
格式=时间
ShowUpDown = True
我认为这就是你想要的。
如果你想要几天,只需设置Format = Custom,CustomFormat =" dd:HH:mm:ss"
答案 1 :(得分:0)
如果你已经开始使用此控件进行'时间跨度',那么你可以确定你的时间跨度不到24小时,
ReadOnly baseDate As DateTime = New DateTime(2000, 1, 1)
Dim myTimeSpan As New TimeSpan
''// set value
DateTimePicker1.Value = baseDate.Add(myTimeSpan)
''// retrieve value
myTimeSpan = DateTimePicker1.Value.Subtract(baseDate)
但是你必须能够处理时间跨度大于24小时或负时间间隔的情况