[Ribbon for WinForms] Windowsのカレンダーの種類を「和歴」に設定すると、RibbonDatePickerやRibbonTimePickerを貼り付けたフォームで例外エラーが発生する

文書番号 : 82060     文書種別 : 制限事項     登録日 : 2017/03/14     最終更新日 : 2017/03/14
文書を印刷する
対象製品
ComponentOne for WinForms
詳細
Windowsの「カレンダーの種類」を「西暦(日本語)」 から 「和暦」に変更し、RibbonDatePickerやRibbonTimePickerを貼り付けたフォームを開くと、下記の例外エラーが発生します。

(エラーの内容)
--------------------------
指定された時刻はこのカレンダーではサポートされていません。値は09/08/1868 00:00:00 (グレゴリオ暦) から 12/31/9999 23:59:59 (グレゴリオ暦) までの間でなければなりません。
--------------------------

C1RibbonのRibbonDatePickerやRibbonTimePickerでは、内部処理上、西暦で日付値が処理される前提となっており、日付を標準のDateTime値として処理しています。JapaneseCalendarなど特定のカレンダーを使用することは考慮していないため、和暦を使用するよう設定した環境で、例えば「29/01/01」という日付書式文字列が渡されるような場合、これが平成29年ではなく1929年として処理されることで、例外エラーが発生します。

これを回避するには、アプリケーションのカレントスレッドで強制的に西暦の日付書式を使用するよう、カルチャ情報を設定します。

(Program.csへの記載例)
◎サンプルコード(VB)
System.Threading.Thread.CurrentThread.CurrentCulture = New CultureInfo("ja-JP", False)

◎サンプルコード(C#)
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-JP", false);