はじめに
DateTimePicker には、ユーザーがカレンダーを開いたタイミングで発生する
DropDown イベント が用意されています。
カレンダーが表示された「瞬間」に処理をしたい場合に非常に便利なイベントです。
💡 一言まとめ:
DropDown = カレンダーが“開いた瞬間”に発生するイベント
DropDown = カレンダーが“開いた瞬間”に発生するイベント
DropDown イベントとは?
| イベント名 | DropDown |
|---|---|
| 発生タイミング | DateTimePicker がカレンダーを展開した直後 |
| よくある用途 | UI 調整、ログ出力、事前チェック、カレンダー色設定変更など |
ユーザーがアイコンをクリックしてカレンダーを開いた瞬間に必ず発生します。
基本的な使い方
デザイナのプロパティウィンドウから
「⚡イベント」 → DropDown → ダブルクリック
でハンドラを作成できます。
最小限の使用例
private void dateTimePicker1_DropDown(object sender, EventArgs e)
{
Console.WriteLine("カレンダーを開きました");
}
これだけで、カレンダーを開くたびにメッセージを記録できます。
DropDown の実務的な利用例
① カレンダーのカスタムテーマを動的に設定
特定条件でカレンダーの色を変える場合、DropDown が便利です。
private void dateTimePicker1_DropDown(object sender, EventArgs e)
{
// 特定条件でカレンダーを青系に調整
dateTimePicker1.CalendarTitleBackColor = Color.SteelBlue;
dateTimePicker1.CalendarTitleForeColor = Color.White;
}
② カレンダーを開く前に入力チェックを行う
private void dateTimePicker1_DropDown(object sender, EventArgs e)
{
if (dateTimePicker1.Value < DateTime.Today)
{
MessageBox.Show("日付は今日以降にしてください");
}
}
③ ログを取る(更新操作の記録など)
private void dateTimePicker1_DropDown(object sender, EventArgs e)
{
Log("DateTimePicker が操作されました");
}
DropDown と CloseUp(カレンダーを閉じたとき) の違い
| イベント | 発生タイミング |
|---|---|
| DropDown | カレンダーを開いた瞬間 |
| CloseUp | カレンダーを閉じた瞬間 |
DropDown は「開く瞬間」、CloseUp は「閉じた瞬間」と覚えておくと分かりやすいです。
✔ 「日付が変更されたかどうか」は ValueChanged を使う
(DropDown では判断できない)
(DropDown では判断できない)
DropDown を使うときの注意点
- 日付の変更イベントではない
→ 日付が変わったかどうかは ValueChanged で判定する。 - DropDown は毎回必ず発生する
→ ログ出力や重い処理を入れると UI が重くなる。 - ShowUpDown = true の場合は発生しない
→ カレンダーを使わないスピン形式では DropDown は無効。 - OS やテーマによっては色変更が反映されないことがある
DropDown を使ったおすすめパターン
① カレンダーを開く前に「今日」にハイライトする
private void dateTimePicker1_DropDown(object sender, EventArgs e)
{
dateTimePicker1.Value = DateTime.Today;
}
② 週末は背景色を変えてユーザーに注意を促す
private void dateTimePicker1_DropDown(object sender, EventArgs e)
{
if (DateTime.Today.DayOfWeek == DayOfWeek.Saturday ||
DateTime.Today.DayOfWeek == DayOfWeek.Sunday)
{
dateTimePicker1.CalendarMonthBackground = Color.MistyRose;
}
}
まとめ
- DropDown は DateTimePicker の「カレンダーを開いた瞬間」に発生するイベント
- 色の変更・事前チェック・ログなどに活用できる
- 日付変更イベントではないので ValueChanged と使い分けが必要
- ShowUpDown(スピン形式)では発生しない
カレンダーを開く直前に UI を整えたり、事前処理を行いたいときに
DropDown イベントは非常に役立ちます。
ValueChanged と組み合わせることで、直感的で使いやすい日付入力フォームを作成できます。
Please follow and like us:

コメント