どうしても自分じゃ、スマートな自作のNull許容DateTimePickerが作り出せなくて
結局悩みまくって調べまくってたら、UltraDateTimePickerというのに出会った!!
これは本当にクール!!!!
【2017/04/12 追記】
コントロールの親を動的に変えたりだとか色々試してたら、不備があったり、既存と同様のイベント発生がされなかったりしたので、調べまくったり、色んなコードを参考にしながら自前で作っちゃいました。
※UltraDateTimePickerの仕様をすべて網羅した形ではありません。
(nullの時にテキストを表示するとか)
NuGetに登録しました。
Metroit.Windows.Forms.2
Metroit.Windows.Forms.45
見つけたサイトはここ。
http://social.msdn.microsoft.com/forums/en-US/winforms/thread/ee0c5fbe-8d18-4899-8df2-46535b570bb4/
最新ソースの投稿日時は「Monday, January 08, 2007 9:38 PM」のやつ。
使い方も「Friday, June 15, 2007 1:36 AM」に紹介してるっぽい。
新規コンポーネントを作って、クラスファイルを全部書き換えればいい。
どうやら、ComboBoxも何か紹介してる様子。
プロパティが追加されているのは分かったけど、具体的にどう変化してるのかまでは調べてない。
それよりDateTimePicker、これは本当に素晴らしすぎる。
素晴らしい点。
- 継承してるから、普通のDateTimePickerと見た目もプロパティも全く一緒。
- Deleteキーで日付をNullにできる。
- BackSpaceキーでも日付をNullにできる。
- 日付が消えてる状態で数字を打つと、フォーマットが復活して入力可能。
これほんとに凄い。
気になる点としては、以下の2点。
- BackSpaceキーによる日付Null制御で、ドゥン!っていう入力が拒否されたアラート音がする。
- 日付Null状態から入力を行おうとした時、現在日時を表示してはくれない。
上の2点については自分ソースに書き換えた時に調整するつもり。
俺も含めて、日本人はまだまだダメだなぁ~って思った。
Nullable DateTimePickerも試してみたけど、それより断然いい。
Nullable DateTimePicker
このNullable DateTimePickerは正直、以下が不満過ぎる。
日付再入力は別にちょろっと書き換えれば実現できるんだけど、それでもちらつくのがどうしょもなさすぎる。
ということで
盛り上がってまいりました!!!
こりゃあ、土日かけてUltraDateTimePickerを解析だぜ!
m_shane_txさん、本当にありがとうございます。
あなたが神だ。