投稿者 魔界の仮面弁士  (社会人) 投稿日時 2015/11/26 12:10:57
> txtDate.Text = CStr(DateTime.Parse(txtDate.Text, cultureInfo))
CStr(日付型) にすると、コントロールパネルの地域設定に依存して
出力結果が異なりますが、大丈夫でしょうか?
(たとえば、地域設定を和暦モードにしていた場合など)

ついでに言えば、個人的には .TryParseExact を使った方が好みです。


> もう少し行数を減らせたり他の方法があったりするのでしょうか?
利用者側のイベント実装が毎回面倒だというのなら、
拡張メソッドや継承コントロールなどの手法を用いて、
よく使う機能をライブラリ化してみてはいかがでしょう。

たとえば、DateTime 型に、「和暦を返す拡張メソッド」を用意するとか。


この手の入力ボックスは、複数の画面、あるいは複数のプロジェクトで使われるため、
自分のところだと、利用側のコードを簡潔にするために、
入力検証系のイベントを拡張したフォームやコントロール、
日付入力特化型の TextBox 継承クラス等の自社ライブラリを用意していたりします。