null許容型のdecimal型にデータバインドするとき、書式設定された数値を入力できない

文書番号 : 28513     文書種別 : 不具合     最終更新日 : 2010/02/04
文書を印刷する
対象製品
MultiRow for Windows Forms 5.0J
発生環境
動作保障環境と同じ
状況
修正済み
詳細
文字列型セルを次の設定でnull許容型のdecimal型にデータバインドするとき、"10,000"のようにカンマで書式設定された数値を入力するとSystem.Exception(DataError)が発生します。

TextBoxCell.Style.Format = "N0";
回避方法
この現象はService Pack 2 (v5.0.2011.0513)で修正されています。
最新のService Packのダウンロードはこちら

または、この現象を回避するためにGcMultiRow.CellParsingイベントを実装します。

[Visual Basic]
Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_CellParsing(ByVal sender As System.Object, ByVal e As CellParsingEventArgs) Handles GcMultiRow1.CellParsing
  If e.DesiredType Is GetType(Nullable(Of Decimal)) Then
    Dim sValue As String = String.Concat(e.Value)
    sValue = sValue.Replace(",", String.Empty)

    Dim dValue As Decimal
    If Decimal.TryParse(sValue, dValue) Then
      e.Value = dValue
      e.ParsingApplied = True
    End If
  End If
End Sub

[C#]
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_CellParsing(object sender, CellParsingEventArgs e)
{
  if (e.DesiredType == typeof(Nullable))
  {
    string sValue = string.Concat(e.Value);
    sValue = sValue.Replace(",", string.Empty);

    decimal dValue;
    if (decimal.TryParse(sValue, out dValue))
    {
      e.Value = dValue;
      e.ParsingApplied = true;
    }
  }
}
キーワード
MLTR07648

この文書は、以前は次のバグレポートIDで公開されていました : 8278