3

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

在此处输入图像描述

但是上面的控件是一个 datetimePicker,它的 Format 属性设置为“Custom”,CustomFormat 属性设置为“HH:mm:ss”,ShowUpDown 属性设置为 true。

所以它只能显示 dateTime 值。

我希望它显示时间跨度值(例如“32.23:59:59”)并使用 UpDown 控件编辑秒或分钟或小时或天,具体取决于从光标标记的内容。

这怎么可能?

我必须从头开始创建自定义控件吗?

提前致谢。

编辑:经过大量思考和实验,我发现如果 DomainUpDown 控件具有方法 SelectionStart 和 SelectionLength ,则可以使用 DomainUpDown 控件编辑 TimeSpan。

我向 Visual Studio UserVoice 网站提交了这样的提案。请为这样的功能投票!

4

2 回答 2

1

使用 DateTimePicker,但设置以下属性

格式 = 时间

ShowUpDown = 真

我想这就是你想要的。

如果你想在那里呆几天,只需设置 Format=Custom 和 CustomFormat = "dd:HH:mm:ss"

于 2012-06-29T18:45:56.820 回答
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 小时或负时间跨度的情况

于 2012-07-02T12:17:10.283 回答