DatePicker コントロールの SelectedDate プロパティ と DisplayDate プロパティの違いが分かりにくかったのでメモ。
SelectedDate プロパティ
SelectedDate プロパティは現在選択されている日付を取得または設定する。
たとえば、Me.oDatePicker.SelectedDate = Now というコードを書いて実行すると、下図のようになる。(実行したのが2019年1月10日の場合)
DisplayDate プロパティ
DisplayDate プロパティは表示する日付を取得または設定する。
たとえば、Me.oDatePicker.DisplayDate = Now.AddMonths(1) というコード(翌月の日付を設定)を実行しても、下図のように何も設定されてないように見えるが、これは「現在選択されている日付(SelectedDate プロパティ)」が未設定の状態ということ。
上図の右端にあるカレンダーのアイコンをクリックすると、下図のように、(コードを実行したのが2019年1月10日なので)翌月の日付が設定されていることが分かる。
つまり、DisplayDate プロパティは、ユーザーが日付を選択するためのカレンダーのページの位置を取得または設定するということ。
SelectedDate プロパティと DisplayDate プロパティの関係
SelectedDate プロパティの値と DisplayDate プロパティの値の設定順によっては、それぞれの値が同じになったり違うものになったりする。
たとえば、先に SelectedDate プロパティを設定してから DisplayDate プロパティを設定すると(それぞれの値はわざと変えてみた)・・・
Me.oDatePicker.SelectedDate = Now Me.oDatePicker.DisplayDate = Now.AddMonths(1)
下図のように、現在選択されている日付(SelectedDate)と表示されている日付(DisplayDate)の値は違ったものになる。
逆に、DisplayDate プロパティを設定してから SelectedDate プロパティを設定すると(それぞれの値はわざと変えてみた)・・・
Me.oDatePicker.DisplayDate = Now.AddMonths(1) Me.oDatePicker.SelectedDate = Now
下図のように、現在選択されている日付(SelectedDate)と表示されている日付(DisplayDate)は同じ値になる。
SelectedDate プロパティを設定すると、同じ値が DisplayDate プロパティにも自動的に設定されるようですね。