作成日: 2016/12/20 最終更新日: 2016/12/20
文書種別
不具合
状況
回避方法あり
詳細
C1NimericEditで、DisplayFormat.CustomFormatを"#,0"などに設定し、MaxLengthで入力可能な文字数を指定した場合、小数点以下に最大桁数まで数値を入力すると、FormatExceptionの例外エラーが発生することがあります。
(例)
MaxLength=5の場合、「.1111」のような形で入力すると、エラーが発生します。
ただし、「0.111」と入力してもエラーは発生しません。
FormatTypeプロパティを「DefaultFormat」のままにした場合、TypeConverter.ConvertToString() を使用して入力文字から数値への変換が行われますが、このとき整数部に0が付加されて「0.1111」として戻り、これが最大文字数を超えるためです。
(例)
MaxLength=5の場合、「.1111」のような形で入力すると、エラーが発生します。
ただし、「0.111」と入力してもエラーは発生しません。
FormatTypeプロパティを「DefaultFormat」のままにした場合、TypeConverter.ConvertToString() を使用して入力文字から数値への変換が行われますが、このとき整数部に0が付加されて「0.1111」として戻り、これが最大文字数を超えるためです。
回避方法
C1NimericEditのEditFormat.CustomFormatを使用して、入力値の桁数制限を行います。
(上記の例の場合)
◎サンプルコード(VB)
◎サンプルコード(C#)
(上記の例の場合)
◎サンプルコード(VB)
C1NumericEdit1.MaxLength = 5
C1NumericEdit1.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat
C1NumericEdit1.EditFormat.CustomFormat = "######.###"
C1NumericEdit1.DisplayFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat
C1NumericEdit1.DisplayFormat.CustomFormat = "#,0"
C1NumericEdit1.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat
C1NumericEdit1.EditFormat.CustomFormat = "######.###"
C1NumericEdit1.DisplayFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat
C1NumericEdit1.DisplayFormat.CustomFormat = "#,0"
◎サンプルコード(C#)
c1NumericEdit1.MaxLength = 5;
c1NumericEdit1.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat;
c1NumericEdit1.EditFormat.CustomFormat = "######.###";
c1NumericEdit1.DisplayFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat;
c1NumericEdit1.DisplayFormat.CustomFormat = "#,0";
c1NumericEdit1.EditFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat;
c1NumericEdit1.EditFormat.CustomFormat = "######.###";
c1NumericEdit1.DisplayFormat.FormatType = C1.Win.C1Input.FormatTypeEnum.CustomFormat;
c1NumericEdit1.DisplayFormat.CustomFormat = "#,0";
旧文書番号
81921