2 つの DateTimePicker コントロールを使用して、1 日のうちの時間と分の範囲を選択する方法を探しています。つまり、基本的に「開始時間」と「終了時間」を選択することです。
h:mm tt のカスタム形式の 2 つの DateTimePicker コントロールから始めました。(ValueChanged で) 追加しようとしましたが、選択した「開始時間」が「終了時間」の最小値になり、逆に「終了時間」が「開始時間」の最大値になるチェックを追加してみました (説明が難しくて申し訳ありませんが、お待ち頂きまして、ありがとうございます!)
しかし、そのアプローチはうまくいかなかったようです。「終了時間」で午前 11 時、「開始時間」で午後 1 時を選択できました。タイムスタンプの現在の日付が関係しているように感じます (たとえば、開始時刻が前日であるため、それよりも小さい)。
1 日を通して 30 分間隔で事前設定されたコンボ ボックスに変更することを考えました。ただし、議事録はそれよりも柔軟である必要があります...
何かご意見は?
更新:
以下のダンのコメントは、この問題に答えました...これは、参照用に最終的に作成されたコードです。
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 イベントが自動的に呼び出され、選択された値が復元されます。
ダン、助けてくれてありがとう:)