【C#入門】DateTimePickerの使い方(設定と取得、入力も解説)

DateTimePickerって使ってますか?DateTimePickerはGUIでカレンダー形式で日付を表示する場合に使うコントロールです。

WindowsフォームでDateTimePickerを使うことができます。ちなみにWindowsフォームとはC言語などで使われるWin32 APIを継承しているGUI開発ライブラリのことです。

この記事では、WindowsフォームのDateTimePickerについて

  • DateTimePickerとは
  • DateTimePickerの使い方
  • DateTimePickerで指定した日付を取得
  • DateTimePickerにnullを入力する方法
  • といった基本的な内容から、など応用的な使い方についても解説していきます。今回はWindowsフォームのDateTimePickerについて、使い方をわかりやすく解説します。

    DateTimePickerとは

    DataGridViewとはGUIでカレンダー形式で日付を表示、操作する場合に使うコントロールのことです。Windowsフォームで用意されています。WindowsフォームはC言語などで使われるWin32 APIを継承したGUI開発ライブラリです。

    DateTimePickerの使い方

    それでは、早速使い方について説明していきます。DateTimePickerの使い方を説明する前に、まずはWindowsフォームの使い方ですが、こちらで詳しく解説しています。ぜひ参考にしてください。

    【C#入門】DataGridViewの使い方(行の追加・削除、ソートも解説)
    更新日 : 2019年4月22日

    DateTimePickerコントロールは「ツールボックス」の「コモンコントロール」に用意されています。
    c#_datetimepicker01

    「DateTimePicker」をクリックし、「Form1.cs」のデザインの「Window」へドラッグ&ドロップすることで使えるようになります。
    c#_datetimepicker02

    テキストボックスにはデフォルトで今日の日付が表示されます。テキストボックスの右側のアイコンをクリックすると下にカレンダーが表示され、日付を選択することができます。
    c#_datetimepicker03

    Short形式で表示する方法

    DateTimePickerでテキストボックスに表示される日付はデフォルトでLong形式になっています。これをプロパティFormatで設定することができます。Short形式やTime形式に設定できます。
    c#_datetimepicker04

    まずはShort形式に設定してみましょう。Short形式は「yyyy/MM/dd」形式で表示します。

    c#_datetimepicker05

    Time形式で表示する方法

    次にTime形式に設定してみましょう。Time形式は時刻を「HH/mm/ss」形式で表示します。
    c#_datetimepicker06

    UpDownで操作する方法

    日付をUpDownコントロールで操作できるように設定してみましょう。プロパティShowUpDownで値をTrueに設定します。日付を1日ずつ進ませたり、遅らせたりすることができます。
    c#_datetimepicker07

    CheckBoxで操作する方法

    日付をCheckBoxコントロールで操作できるように設定してみましょう。プロパティShowCheckBoxで値をTrueに設定します。日付を表示するテキストボックスの左端にCheckBoxが表示されます。
    c#_datetimepicker08

    DateTimePickerで指定した日付を取得

    それではDateTimePickerで指定した日付を取得する方法についてみていきましょう。日付を取得するにはValueプロパティを使います。Valueプロパティで取得できるのは、DateTime型です。

    文字列で取得する場合は、ValueプロパティからToStringメソッドなどを呼び出し文字列に変換します。ボタンを使って取得し、テキストボックスに表示してみましょう。
    c#_datetimepicker09

    ToStringメソッドで文字列に変換すると時刻も含まれます。時刻を含めたくない場合は、ToLongDateStringメソッドやToShortDateStringメソッドで文字列へ変換しましょう。

    ToLongDateStringメソッドの場合は「yyyy月M月d日」形式で文字列へ変換されます。ToShortDateStringメソッドの場合は「yyyy/MM/dd」形式で文字列へ変換されます。
    c#_datetimepicker10

    DateTimePickerに入力する方法

    先ほどDateTimePickerコントロールのValueプロパティをご紹介しましたが、ValueプロパティはDateTime型の値を入力することもできます。

    dateTimePicker1.Value = new DateTime(2018, 6, 1);

    nullを入力する方法

    データベースなどから日付を入力しようとする場合に、データベースでnullを許容している場合があります。しかし、DateTimePickerコントロールのValueプロパティはnullを入力することはできずエラーが発生します。

    そこで、nullを入力する方法をご紹介します。nullを入力できるようにするには、DateTimePickerコントロールを継承したクラスを自作する必要があります。

    自作する方法についてはこちらで詳しく解説しています。

    https://social.msdn.microsoft.com/Forums/windows/en-US/ee0c5fbe-8d18-4899-8df2-46535b570bb4/how-to-create-a-nullable-and-editable-datetimepicker?forum=winforms

    まとめ

    ここではDateTimePickerコントロールについて説明しました。DateTimePickerコントロールは日付データをカレンダー形式で手軽に表示、操作することができます。

    使いこなすことができるように、この記事を何度も参考にして下さいね!

    LINEで送る
    Pocket

    「プログラミング、右も左もわからない…」という方にオススメ

    当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

    その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

    侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

    cta_under_bnr

    「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

    書いた人

    長野 透

    長野 透

    熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
    お問合せはこちらでも受け付けています。
    [email protected]