作成日: 2020/01/16 最終更新日: 2020/04/30
文書種別
不具合
発生環境
SP2(12.0.4503.2012) SP3(12.0.4504.2012)
状況
修正済み
詳細
シート上に表示されている行数を増やした時に、RowsAddedタイプを引数とするDefaultSheetDataModelクラスのChangedイベントが発生しますが、それに加えてCellsUpdatedタイプのChangedイベントが不正に発生します。
【再現手順】
1.新規作成したプロジェクトのForm1にFpSpreadを貼り付ける。
2.下記サンプルコードを記述する。
3.fpSpread1.ActiveSheet.ColumnCountにブレークポイントを設定し、実行する。
--コンソールへの出力でチェンジイベントの発生について確認ができます。
FpSpread1.ActiveSheet.ColumnCount += 1→Type=ColumnsAddedでChangedイベントが発生する
FpSpread1.ActiveSheet.RowCount += 1→Type=RowsAddedでChangedイベントが発生後、Type=CellsUpdatedでもChangedイベントが発生する
■サンプルコード(VB.NET)
【再現手順】
1.新規作成したプロジェクトのForm1にFpSpreadを貼り付ける。
2.下記サンプルコードを記述する。
3.fpSpread1.ActiveSheet.ColumnCountにブレークポイントを設定し、実行する。
--コンソールへの出力でチェンジイベントの発生について確認ができます。
FpSpread1.ActiveSheet.ColumnCount += 1→Type=ColumnsAddedでChangedイベントが発生する
FpSpread1.ActiveSheet.RowCount += 1→Type=RowsAddedでChangedイベントが発生後、Type=CellsUpdatedでもChangedイベントが発生する
■サンプルコード(VB.NET)
Imports FarPoint.Win.Spread.Model
Public Class Form1
Dim WithEvents datamodel As FarPoint.Win.Spread.Model.DefaultSheetDataModel
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
datamodel = DirectCast(FpSpread1.ActiveSheet.Models.Data, FarPoint.Win.Spread.Model.DefaultSheetDataModel)
FpSpread1.ActiveSheet.ColumnCount += 1
FpSpread1.ActiveSheet.RowCount += 1
End Sub
Private Sub datamodel_Changed(sender As Object, e As SheetDataModelEventArgs) Handles datamodel.Changed
Console.WriteLine("{0}", e.Type)
End Sub
End Class
Public Class Form1
Dim WithEvents datamodel As FarPoint.Win.Spread.Model.DefaultSheetDataModel
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
datamodel = DirectCast(FpSpread1.ActiveSheet.Models.Data, FarPoint.Win.Spread.Model.DefaultSheetDataModel)
FpSpread1.ActiveSheet.ColumnCount += 1
FpSpread1.ActiveSheet.RowCount += 1
End Sub
Private Sub datamodel_Changed(sender As Object, e As SheetDataModelEventArgs) Handles datamodel.Changed
Console.WriteLine("{0}", e.Type)
End Sub
End Class
回避方法
Service Pack 4(v12.0.4505.2012 )で修正済み。
旧文書番号
84854