【学習】WinFormsでDateTimePickerを使ってみよう(日付・時刻の選択)

広告

これまでの学習では、

  • ボタンを押す
  • テキストを入力する
  • チェックやラジオで選ぶ

という形でプログラムにデータを渡してきました。

しかし、日付や時刻を扱うアプリにはもう一つの入力方法があります。

カレンダーから日付を選ぶ

という仕組みです。DateTimePicker を使うと、ユーザーが日付や時刻を簡単に選べる画面が作れます。

今回は DateTimePicker を使って、選んだ日付を表示するアプリを作ります。

今日作るもの

DateTimePicker で日付を選ぶと

選択した日付:2026/03/17

のように Label に表示されます。カレンダーを開いて日付をクリックするだけで、選択した日付を取得できます。


ソリューションとプロジェクトを作る

Visual Studio で新しいプロジェクトを作ります。

  • テンプレート: Windows Forms アプリ (.NET Framework)
  • ソリューション名: DateSample
  • プロジェクト名: DateTimePickerDemo

作成すると Form1 が表示されます。


フォームに配置するコントロール

フォームに次のものを配置します。

コントロール名前
DateTimePickerdateTimePicker1
ButtonconfirmButton
LabelresultLabel

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 は日付・時刻入力の基本の一つです。

訪問数 3 回, 今日の訪問数 3回

広告