我正在寻找一种方法来使用两个 DateTimePicker 控件来选择一天内的小时和分钟范围。即,基本上选择“开始时间”和“结束时间”。
我从两个自定义格式为 h:mm tt 的 DateTimePicker 控件开始。我尝试添加(在 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 事件并恢复选定的值。
丹,谢谢你的帮助:)