我正在寻找一种方法来使用两个DateTimePicker控件在一天内选择小时数和分钟数范围。也就是说,基本上选择“开始时间”和“结束时间”。DateTimePicker:仅在一天内选择一个小时数范围
我开始使用两个DateTimePicker控件,自定义格式为h:mm tt。我尝试添加(在ValueChanged上),一个支票使选定的'开始时间'成为'结束时间'的最小值,反之亦然,'结束时间'成为'开始时间'的最大值(抱歉,很难解释,但感谢您的耐心等待!)
但是,这种方法似乎并不奏效 - 我仍然可以选择'结束时间'上午11点和'开始时间'下午1点。我感觉时间戳的当前日期与它有关(例如,开始时间是前一天,因此较少)。
我曾考虑换一个全天预设半小时间隔的组合框;然而分钟需要比那更灵活...
有什么想法?
UPDATE:
下面回答这个问题丹的评论...这是我结束了供参考的代码;
Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
DateTimePicker2.MinDate = Date.Today + DateTimePicker1.Value.TimeOfDay
End Sub
Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
DateTimePicker1.MaxDate = Date.Today + DateTimePicker2.Value.TimeOfDay
End Sub
DateTimePIcker1作为下限,DateTImePIcker2作为上限,二者使用的“h:毫米TT”作为自定义日期时间格式。
存储这些首选项现在只需使用Value.TimeOfDay(并将其存储为时间跨度),然后在检索时发生以下加载过程;
DateTimePicker1.Value = Date.Today + StoredTimeLowerBound
DateTimePicker2.Value = Date.Today + StoredTimeUpperBound
这将自动调用上面处理的ValueChanged事件并恢复选定的值。
丹,感谢您的帮助:)
发布您正在使用的ValueChanged逻辑可能会有帮助。 – 2009-09-18 17:39:15
当然,当我有机会回到我的代码:) – 2009-09-18 18:06:53