Vb.net DateTimePicker:仅在一天内选择一个小时范围
我正在寻找一种使用两个DateTimePicker控件在一天内选择小时和分钟范围的方法。也就是说,基本上选择“开始时间”和“结束时间” 我从两个DateTimePicker控件开始,它们的自定义格式为h:mm tt。我尝试添加ValueChanged,一个使所选“开始时间”成为“结束时间”最小值的检查,反之亦然,“结束时间”成为“开始时间”最大值的检查抱歉很难解释,但感谢您的耐心 然而,这种方法似乎不起作用——我仍然能够选择上午11点作为“结束时间”,下午1点作为“开始时间”。我有一种感觉,时间戳的当前日期与此有关,例如,开始时间是前一天的,因此较少 我想换成一个组合框,每天预设半小时的间隔;然而,会议记录需要比这更灵活 有什么想法吗 更新: 丹在下面的评论回答了这个问题。。。这是我作为参考的代码Vb.net DateTimePicker:仅在一天内选择一个小时范围,vb.net,datetime,datetimepicker,Vb.net,Datetime,Datetimepicker,我正在寻找一种使用两个DateTimePicker控件在一天内选择小时和分钟范围的方法。也就是说,基本上选择“开始时间”和“结束时间” 我从两个DateTimePicker控件开始,它们的自定义格式为h:mm tt。我尝试添加ValueChanged,一个使所选“开始时间”成为“结束时间”最小值的检查,反之亦然,“结束时间”成为“开始时间”最大值的检查抱歉很难解释,但感谢您的耐心 然而,这种方法似乎不起作用——我仍然能够选择上午11点作为“结束时间”,下午1点作为“开始时间”。我有一种感觉,时间
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:mm tt作为自定义日期时间格式
存储这些首选项现在将只使用Value.TimeOfDay并存储为时间跨度,然后在检索时发生以下加载过程
DateTimePicker1.Value = Date.Today + StoredTimeLowerBound
DateTimePicker2.Value = Date.Today + StoredTimeUpperBound
这将自动调用上面处理的ValueChanged事件,并恢复选定的值
丹,谢谢你的帮助:这将确保你的两个时间从今天开始:
Dim startTime As Date = Date.Today + DateTimePicker1.Value.TimeOfDay
Dim endTime As Date = Date.Today + DateTimePicker2.Value.TimeOfDay
然后,如果endTimeDateTimePicker1.Value = startTime
DateTimePicker2.Value = endTime
编辑:在小时范围内,您需要一个TimeSpan对象,它是DateTime对象加减后的自动结果:
这将确保您的两个时间从今天开始:
Dim startTime As Date = Date.Today + DateTimePicker1.Value.TimeOfDay
Dim endTime As Date = Date.Today + DateTimePicker2.Value.TimeOfDay
然后,如果endTimeDateTimePicker1.Value = startTime
DateTimePicker2.Value = endTime
编辑:在小时范围内,您需要一个TimeSpan对象,它是DateTime对象加减后的自动结果:
发布您正在使用的ValueChanged逻辑可能会有帮助。当然,当我有机会返回到我的代码时会这样做:发布您正在使用的ValueChanged逻辑可能会有帮助。当然,当我有机会返回到我的代码时会这样做:谢谢您的回复。我并不担心这些价值观是从哪一天开始的,我只是想知道为什么我想要的东西不起作用。我想我可以改写为,我需要在带有验证逻辑的DateTimePickers中使用开始时间和结束时间作为h:MM tt来选择一个小时范围。@Shadow:请参见我的编辑。这就是你的意思吗?甚至不接近?我再次访问了我的代码,并测试了您提供的第一条语句-它们工作得非常出色!Value.TimeOfDay确实帮了大忙:。感谢您的回复。我并不担心这些价值观是从哪一天开始的,我只是想知道为什么我想要的东西不起作用。我想我可以改写为,我需要在带有验证逻辑的DateTimePickers中使用开始时间和结束时间作为h:MM tt来选择一个小时范围。@Shadow:请参见我的编辑。这就是你的意思吗?甚至不接近?我再次访问了我的代码,并测试了您提供的第一条语句-它们工作得非常出色!Value.TimeOfDay确实帮助了事情的发展:。