日付の表示 : MonthCalendar コントロールと DateTimePicker コントロールを使用する
更新 : 2007 年 11 月
このレッスンでは、Windows フォームに日付を表示する方法を説明します。また、ユーザーが日付を選択したときにアクションを実行する方法についても説明します。
カレンダーを表示するコントロールを使用すると、ユーザーは簡単に日付を選択できます。また、こうしたコントロールを使用すると、日付が適切に書式設定されるようになります。カレンダーの表示には、MonthCalendar コントロールまたは DateTimePicker コントロールを使用できます。
MonthCalendar コントロールを使うと、1 ヶ月以上の月間カレンダーを表示できます。このコントロールを使用した場合、ユーザーは単一の日付または日付の範囲を選択できます。
DateTimePicker コントロールには、2 つの状態があります。既定では、DateTimePicker コントロールは、ドロップダウン矢印付きのテキスト ボックスとして表示されます。このドロップダウン矢印をユーザーがクリックすると、カレンダーが表示されます。このコントロールを使用した場合、ユーザーが選択できる日付は 1 つだけです。DateTimePicker コントロールでは、日付の代わりに時刻も表示できます。
これらのコントロールから日付を取得するためのプロセスは、使用するコントロールによって異なります。MonthCalendar コントロールの場合は Start プロパティ、DateTimePicker コントロールの場合は Value プロパティを使用します。
やってみよう
日付を取得してラベルに表示するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[Windows フォーム アプリケーション] をクリックし、[OK] をクリックします。
フォームに Label コントロールを追加します。既定の名前「Label1」はそのままにしておきます。
Label コントロールの Text プロパティからテキストを削除します。
フォームに MonthCalendar コントロールを追加します。既定の名前「MonthCalendar1」はそのままにしておきます。
MonthCalendar コントロールをダブルクリックしてコード エディタに既定のイベント ハンドラを入力します。
MonthCalendar1_DateChanged イベント ハンドラに、次のコードを追加します。このコードは、リストに項目を追加します。
Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
デザイナ ビューに戻り、フォームに DateTimePicker コントロールを追加します。既定の名前「DateTimePicker1」はそのままにしておきます。
DateTimePicker コントロールをダブルクリックしてコード エディタに既定のイベント ハンドラを入力します。
DateTimePicker_ValueChanged イベント ハンドラに、次のコードを追加します。このコードは、リストに項目を追加します。
Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
F5 キーを押してプログラムを実行します。
フォームが表示されたら、MonthCalendar コントロールの日付をクリックし、その日付がラベルに表示されることを確認します。
DateTimePicker コントロールのドロップダウン矢印をクリックし、日付を選択します。
ラベルに日付と時刻が表示されます。
プログラムを終了します。
複数の日付を取得する
SelectionRange の Start プロパティと End プロパティを使用することにより、MonthCalendar コントロールで選択された日付の範囲を取得できます。既定の選択可能最大日数は 7 ですが、この日数は MaxSelectionCount プロパティを設定することにより変更できます。開始日と終了日が等しいかどうかをチェックすることで、範囲が選択されたかどうかを判断できます。
月間予定表コントロールから日付の範囲を取得するには
MonthCalendar1_DateChanged イベント ハンドラのコードを、次のコードに変更します。このコードは、コントロールでの選択可能最大日数 (2 週間) を設定します。1 日だけ選択された場合は、ラベルに開始日を表示します。MonthCalendar コントロールで範囲が選択された場合は、日付の範囲を表示します。
Me.MonthCalendar1.MaxSelectionCount = 14 If Me.MonthCalendar1.SelectionRange.Start = _ Me.MonthCalendar1.SelectionRange.End Then Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionStart) Else Me.Label1.Text = Me.MonthCalendar1.SelectionRange.Start & _ " - " & Me.MonthCalendar1.SelectionRange.End End If
F5 キーを押してプログラムを実行します。
フォームが表示されたら、MonthCalendar コントロールで日付の範囲を選択し、選択した日付の範囲がラベルに表示されることを確認します。
プログラムを終了します。
日付を書式設定する
FormatDateTime 関数を使用することにより、MonthCalendar コントロールおよび DateTimePicker コントロールから返された日付を書式設定できます。日付の形式を指示するための定数は、次のようにさまざまな種類が用意されています。
定数 |
説明 |
例 (既定の英語 (U.S.) 地域設定の場合) |
---|---|---|
DateFormat.GeneralDate |
日付または時刻、あるいは両方を表示します。日付がある場合は、日付を短い日付形式で表示します。時刻がある場合は、時刻を長い形式で表示します。両方ある場合は、両方とも表示します。 |
11/22/1963 12:00:00 PM |
DateFormat.LongDate |
[地域のオプション] で指定されている長い日付形式で日付を表示します。 |
Friday, November 22, 1963 |
DateFormat.ShortDate |
[地域のオプション] で指定されている短い日付形式で日付を表示します。 |
11/22/1963 |
DateFormat.LongTime |
[地域のオプション] で指定されている長い時刻形式で時刻を表示します。 |
12:00:00 PM |
DateFormat.ShortTime |
24 時間形式 (hh:mm) で時刻を表示します。 |
12:00 |
ラベルの日付を書式設定するには
MonthCalendar1_DateChanged イベント ハンドラのコードを、次のコードに変更します。このコードは、返された日付を長い形式の日付に書式設定します。
Me.MonthCalendar1.MaxSelectionCount = 14 If Me.MonthCalendar1.SelectionRange.Start = _ Me.MonthCalendar1.SelectionRange.End Then Me.Label1.Text = FormatDateTime( _ Me.MonthCalendar1.SelectionStart, _ DateFormat.LongDate) Else Me.Label1.Text = FormatDateTime( _ Me.MonthCalendar1.SelectionRange.Start, _ DateFormat.LongDate) & " - " & FormatDateTime( _ Me.MonthCalendar1.SelectionRange.End, DateFormat.LongDate) End If
DatePicker1_ValueChanged イベント ハンドラのコードを、次のコードに変更します。このコードは、返された日付を長い形式の日付に書式設定します。
Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _ DateFormat.LongDate)
F5 キーを押してプログラムを実行します。
フォームが表示されたら、MonthCalendar コントロールで単一の日付または日付の範囲をクリックします。選択した日付または日付の範囲が、長い日付形式でラベルに表示されることを確認します。
DateTimePicker コントロールで日付をクリックし、その日付が長い日付形式でラベルに表示されることを確認します。
プログラムを終了します。
次の手順
このレッスンでは、MonthCalendar コントロールおよび DateTimePicker コントロールで選択された日付を取得し、それらを Windows フォーム上に表示する方法を説明しました。また、日付の範囲を表示する方法と、取得した日付の書式設定の方法も説明しました。次のレッスンでは、データ コントロールの使用方法について説明します。
次のレッスン : 「データ コントロール : DataGridView コントロールでのデータの表示」
参照
参照
DateTimePicker コントロールの概要 (Windows フォーム)
MonthCalendar コントロールの概要 (Windows フォーム)
FormatDateTime 関数 (Visual Basic)