データ連結時の新規行に設定したデフォルト値が描画されないことがある

文書番号 : 39510     文書種別 : 不具合     登録日 : 2016/07/27     最終更新日 : 2016/09/05
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
データ連結時の新規行に設定したデフォルト値が描画されないことがあります。

【手順】
1.新規フォームにSPREADを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.A1セルに「a」を入力し、[Enter]キーを押下します
  --D1セルに「100」が表示されません

【サンプルコード】
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' データの作成
    Dim ds As New DataSet()
    Dim dt As DataTable = ds.Tables.Add("Test")
    dt.Columns.Add("ColA", GetType([String]))
    dt.Columns.Add("ColB", GetType([String]))
    dt.Columns.Add("ColC", GetType([Boolean]))
    dt.Columns.Add("ColD", GetType(Int32))
    dt.Columns.Add("ColE", GetType([String]))
    dt.Columns("ColC").DefaultValue = True
    dt.Columns("ColD").DefaultValue = 100
    dt.AcceptChanges()

    ' SPREADの設定
    FpSpread1.ActiveSheet.DataAllowAddNew = True
    FpSpread1.ActiveSheet.DataSource = ds
    FpSpread1.ActiveSheet.DataMember = ds.Tables(0).TableName
  End Sub
回避方法
Service Pack 3(v8.0.3505.2008)で修正済み。
Service Pack 3(v8.0.3505.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

編集終了時にInvalidateメソッドを実行します。

【サンプルコード】
  Private Sub FpSpread1_EditModeOff(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOff
    ' 対応策
    If FpSpread1.ActiveSheet.ActiveRowIndex = FpSpread1.ActiveSheet.RowCount - 2 Then
      FpSpread1.Invalidate(True)
    End If
  End Sub