如何使用VB.NET使用UpDown控件编辑时间跨度值?

时间:2012-06-29 18:02:31

标签: vb.net timer timespan numericupdown

我有一个带有显示Timespan值(持续时间)的文本框的计时器。 当我停止计时器时,我想用UpDown控件编辑Timespan的值。 我想要这样的东西:

enter image description here

但上面的控件是一个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!

2 个答案:

答案 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小时或负时间间隔的情况