C# DateTimePickerで和暦表示をする方法で困った

C# DateTimePickerで和暦表示をする方法で困ったのでメモる。

 

コントロールに過去年の日付を渡しているのだが

表示される年は今年になってしまう?????

 

コントロールのValueChanged EventHandlerに記述が必要というのがわかった。

 

        private void dtp_ValueChanged(object sender, EventArgs e)
        {
            System.Globalization.Calendar calendar = new System.Globalization.JapaneseCalendar();
            System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ja-JP");
            culture.DateTimeFormat.Calendar = calendar;

            DateTimePicker dtp = (DateTimePicker)sender;
            dtp.CustomFormat
                = dtp.Value.ToString("gg yy", culture) + "年MM月dd日";
        }