作成日: 2017/12/19 最終更新日: 2018/02/08
文書種別
不具合
状況
現象確認済み
詳細
(1)C1DateEditコントロールにEditMaskとCustomFormatを設定すると、最初に入力した数値が年号に変換されません。
例:C1DateEditコントロールにEditMaskを指定し、EditFormatのCustomFormatを"gyy年MM月dd日"に設定したのち「209/02/01」と入力しても、「大09年02月01日」(※1)と表示されず、 「西暦09年02月01日」と表示されてしまいます。
※1「大正09年02月01日」を意味します。
(2)「t09/02/01」と入力して「大09年02月01日」と表示させ、C1DateEditコントロール以外にフォーカスを移動した後、本コントロールにフォーカスを戻して再度他のコントロールにフォーカスを移動すると、マスク時の検証エラー(※2)が表示されます。
※2 MaskInfo.ErrorMessageプロパティで、エラーテキストを設定します。
例:C1DateEditコントロールにEditMaskを指定し、EditFormatのCustomFormatを"gyy年MM月dd日"に設定したのち「209/02/01」と入力しても、「大09年02月01日」(※1)と表示されず、 「西暦09年02月01日」と表示されてしまいます。
※1「大正09年02月01日」を意味します。
(2)「t09/02/01」と入力して「大09年02月01日」と表示させ、C1DateEditコントロール以外にフォーカスを移動した後、本コントロールにフォーカスを戻して再度他のコントロールにフォーカスを移動すると、マスク時の検証エラー(※2)が表示されます。
※2 MaskInfo.ErrorMessageプロパティで、エラーテキストを設定します。
回避方法
【2018.02.08追記】
(2)の現象は、不具合ではなくコードの設定内容に問題がありました。
「t09/02/01」のような形式で入力を行わせたい場合、EditMaskは設定せず、EditFormatのFormatTypeプロパティを「CustomFormat」に、CustomFormatプロパティを「gyy/MM/dd」に設定します。
◎サンプルコード(VB)
◎サンプルコード(C#)
(2)の現象は、不具合ではなくコードの設定内容に問題がありました。
「t09/02/01」のような形式で入力を行わせたい場合、EditMaskは設定せず、EditFormatのFormatTypeプロパティを「CustomFormat」に、CustomFormatプロパティを「gyy/MM/dd」に設定します。
◎サンプルコード(VB)
' 修正前
' C1DateEdit2.EditMask = "&90/90/90"
' 修正後
C1DateEdit2.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat
C1DateEdit2.EditFormat.CustomFormat = "gyy/MM/dd"
' C1DateEdit2.EditMask = "&90/90/90"
' 修正後
C1DateEdit2.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat
C1DateEdit2.EditFormat.CustomFormat = "gyy/MM/dd"
◎サンプルコード(C#)
// 修正前
//c1DateEdit2.EditMask = "&90/90/90";
// 修正後
c1DateEdit2.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat;
c1DateEdit2.EditFormat.CustomFormat = "gyy/MM/dd";
//c1DateEdit2.EditMask = "&90/90/90";
// 修正後
c1DateEdit2.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat;
c1DateEdit2.EditFormat.CustomFormat = "gyy/MM/dd";
旧文書番号
82479