作成日: 2021/12/09 最終更新日: 2022/04/06
文書種別
不具合
状況
修正済み
詳細
SPREADをデータ連結しDefaultSheetDataModelのChangedイベント内でSetValueメソッドなどで明示的にデータを設定します。この設定を有効にした状態で数値ではない文字を使用してドラッグフィルを行うと、例外(NullReferenceException)が発生し正しく動作しません。
【再現手順】
1.新規作成したプロジェクトにFpSpreadを貼り付けます。
2.下記のサンプルコードを記述します。
3.プロジェクトを実行します。
4.B1セルに「a」と入力し、右下にカーソルを合わせてB列の10行目までドラッグフィルします。
-- NullReferenceExceptionが発生し、2行目までしかデータが設定されない
1.新規作成したプロジェクトにFpSpreadを貼り付けます。
2.下記のサンプルコードを記述します。
3.プロジェクトを実行します。
4.B1セルに「a」と入力し、右下にカーソルを合わせてB列の10行目までドラッグフィルします。
-- NullReferenceExceptionが発生し、2行目までしかデータが設定されない
◎サンプルコード(VB)
Imports FarPoint.Win.Spread.Model
Public Class Form1
Private WithEvents dm As DefaultSheetDataModel
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable()
dt.Columns.AddRange({
New DataColumn("A", GetType(Int32)),
New DataColumn("B")
})
For i = 0 To 9
dt.Rows.Add(dt.NewRow())
Next
dt.AcceptChanges()
FpSpread1_Sheet1.DataSource = dt
dm = FpSpread1_Sheet1.Models.Data
End Sub
Private Sub dm_Changed(sender As Object, e As SheetDataModelEventArgs) Handles dm.Changed
If e.Type = SheetDataModelEventType.CellsUpdated Then
If dm.GetValue(e.Row, 0) <> 1 Then
dm.SetValue(e.Row, 0, 1)
End If
End If
End Sub
End Class
回避方法
Service Pack 9(v12.0.4512.2012)で修正済み。