.NET TIPS

DateTimePickerコントロールでコードによりカレンダーを表示するには?[C#、VB]

デジタルアドバンテージ 遠藤 孝信
2009/06/25

 Windowsアプリケーションでユーザーに日付を選択させるためのDateTimePickerコントロール(System.Windows.Forms名前空間)では、コントロール右端にある“▼ボタン”をクリックすることによりドロップダウン・カレンダーを表示でき、ユーザーはカレンダーから日付を選択できる。


ドロップダウン・カレンダーを表示中のDateTimePickerコントロール

 ただしDateTimePickerコントロールにはドロップダウン・カレンダーを制御するためのメソッドなどがまったく用意されておらず、プログラムでドロップダウン・カレンダーを表示するようなコードを記述できない。

 しかし、DateTimePickerコントロールに対して[↓]キーのキーストロークを送信することにより、強制的にドロップダウン・カレンダーを表示させることが可能だ。このコードは次のように記述できる。ここではフォームに配置したボタンがクリックされたときに、ドロップダウン・カレンダーを開くケースを想定している。

// ボタンのClickイベント・ハンドラ
private void button1_Click(object sender, EventArgs e)
{
  this.dateTimePicker1.Select();
  SendKeys.SendWait("%{DOWN}"); // [↓]キーの送信
}
' ボタンのClickイベント・ハンドラ
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Me.DateTimePicker1.Select()
  SendKeys.SendWait("%{DOWN}") ' [↓]キーの送信
End Sub
DateTimePickerコントロールでドロップダウン・カレンダーを開くコード(上:C#、下:VB)

 このコードでは、まずDateTimePickerコントロールのSelectメソッドを呼び出して、コントロールをアクティブにする。そして、SendKeysクラス(System.Windows.Forms名前空間)のSendWaitメソッドにより、キーストロークを送信している。End of Article

利用可能バージョン:.NET Framework 2.0以降
カテゴリ:Windowsフォーム 処理対象:DateTimePickerコントロール
使用ライブラリ:DateTimePickerコントロール(System.Windows.Forms名前空間)
使用ライブラリ:SendKeysクラス(System.Windows.Forms名前空間)

この記事と関連性の高い別の.NET TIPS
DateTimePickerコントロールでDBNullを扱うには?
[ASP.NET AJAX]Calendarコントロールで日付入力ボックスを定義するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH