【学習】WinFormsでDateTimePickerを使ってみよう(日付・時刻の選択)
これまでの学習では、
- ボタンを押す
- テキストを入力する
- チェックやラジオで選ぶ
という形でプログラムにデータを渡してきました。
しかし、日付や時刻を扱うアプリにはもう一つの入力方法があります。
カレンダーから日付を選ぶ
という仕組みです。DateTimePicker を使うと、ユーザーが日付や時刻を簡単に選べる画面が作れます。
今回は DateTimePicker を使って、選んだ日付を表示するアプリを作ります。
今日作るもの
DateTimePicker で日付を選ぶと
選択した日付:2026/03/17
のように Label に表示されます。カレンダーを開いて日付をクリックするだけで、選択した日付を取得できます。
ソリューションとプロジェクトを作る
Visual Studio で新しいプロジェクトを作ります。
- テンプレート: Windows Forms アプリ (.NET Framework)
- ソリューション名: DateSample
- プロジェクト名: DateTimePickerDemo
作成すると Form1 が表示されます。
フォームに配置するコントロール
フォームに次のものを配置します。
| コントロール | 名前 |
|---|---|
| DateTimePicker | dateTimePicker1 |
| Button | confirmButton |
| Label | resultLabel |
DateTimePicker の Value プロパティで初期日付を設定できます。そのままでも今日の日付が入ります。
Valueプロパティとは
DateTimePicker には Value というプロパティがあります。
dateTimePicker1.Value→ 選択された日付・時刻(DateTime 型)dateTimePicker1.Value.ToString("yyyy/MM/dd")→ 日付を文字列で取得(例:2026/03/17)
DateTime 型は日付と時刻をまとめて扱います。日付だけ表示したい場合は ToString で書式を指定します。
ボタンのイベントを登録する
confirmButton をダブルクリックすると confirmButton_Click イベントが作成されます。
ここで Value を取得して、Label に表示します。
完成コード
using System;
using System.Windows.Forms;
namespace DateTimePickerDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void confirmButton_Click(object sender, EventArgs e)
{
DateTime selectedDate = dateTimePicker1.Value;
resultLabel.Text = "選択した日付:" + selectedDate.ToString("yyyy/MM/dd");
}
}
}
プログラムの流れ
確認ボタンを押す
↓
dateTimePicker1.Value を取得
↓
ToString("yyyy/MM/dd") で日付形式に変換
↓
resultLabel に表示
重要ポイント
DateTimePicker は「日付・時刻を選ぶ」 入力です。
- カレンダー形式で日付を選べる
Valueプロパティで選択内容を取得する(DateTime 型)ToString("yyyy/MM/dd")で日付だけの文字列にできるFormatプロパティで Short(日付)/ Long(長い日付)/ Time(時刻)を切り替えられる
予定管理、家計簿、勤怠メモなどでよく使います。
発展:ValueChanged イベント
ボタンを押さなくても、日付を変えた瞬間に処理したい場合は ValueChanged イベントを使います。
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
resultLabel.Text = "選択した日付:" + dateTimePicker1.Value.ToString("yyyy/MM/dd");
}
発展:時刻を選ぶ
Format プロパティを Time にすると、時刻だけを選べるようになります。
// 時刻を取得
string time = dateTimePicker1.Value.ToString("HH:mm");
resultLabel.Text = "選択した時刻:" + time;
発展アイデア
DateTimePicker を使うと次のようなものも作れます。
- 予定管理アプリ(日付で予定を登録)
- 家計簿(日付ごとに収支を記録)
- 勤怠メモ(出勤日・退勤時刻の記録)
- 誕生日入力フォーム
DateTimePicker は日付・時刻入力の基本の一つです。





ディスカッション
コメント一覧
まだ、コメントがありません