こんにちは、デベロッパーサポートの古堅です。
前回 【WPF】新元号と元号(和暦)コントロールの対応について - インフラジスティックス・ジャパン株式会社のBlogはWPFでの対応の記事でしたが、当記事ではWindowsFormsの元号対応について紹介です!
WindowsForms製品も、Windowsアップデートのみで対応出来るのか?
結論から言いますと、WindowsForms製品もWindowsアップデートのみで対応できます!
元号情報はOSのレジストリから取得しているので、「弊社製品のサービスリリース」の適用は不要です。
対応方法
カルチャー情報(CultureInfo)に、日本語設定を行うことにより動作します。弊社の参考ページはこちら。
2017 Volume 1 の新機能 - Infragistics Windows Forms™ ヘルプ
デフォルトでは、カルチャはマシンのカルチャに設定されます。したがって、 WinDateTimeEditor および WinMaskedEdit は、カルチャの設定に従ってそのまま動作します。コントロールのカルチャは、WinMaskedEdit の CultureInfo プロパティ、または WinDateTimeEditor の FormatProvider プロパティで手動で指定することもできます。
サンプルコード
// 日本語の言語情報を設定 CultureInfo ci = new CultureInfo("ja-JP"); ci.DateTimeFormat.Calendar = new JapaneseCalendar(); // フォーマットプロバイダーに設定 this.ultraDateTimeEditor1.FormatProvider = ci; // 元号のフォーマット文字列は g または gg // ⇒ gのみだと1文字。例えば平成の場合は、平 のみとなる。平成 の2文字を表示したいのでggを指定 // (注)MaskInputの月表現は大文字(MM) this.ultraDateTimeEditor1.MaskInput = "ggyy年mm月dd日"; // (注)FormatStringの月表現は大文字(MM) this.ultraDateTimeEditor1.FormatString = "ggyy年MM月dd日";
動作確認
前回の記事同様に、新元号(2019/5/1開始)をレジストリに格納し動作させた結果がこちらとなります。
※レジストリを修正してお試しする場合は、前回の記事をご参照ください。
まとめ
弊社のデスクトップ製品であるWindowsFormsの元号対応についてのご紹介でした。実際の動作確認は、元号発表以降のWindowsアップデートをお待ちくださいませ。