作成日: 2017/11/06 最終更新日: 2018/07/06
文書種別
不具合
状況
修正済み
詳細
InsertUnboundRowメソッドで任意の場所に行を挿入した場合、CellValueChangingイベントおよびCellValueChangedイベントで取得するRowインデックスの値が不正になります。
例えば、2行のGcSpreadGridに対して、InsertUnboundRowメソッドで先頭に1行追加します。次に、追加した先頭行の任意のセルを編集します。この際、CellValueChanging/CellValueChangedイベントで取得するe.Rowの値が「2」となります。
※この場合、正しい値は、先頭行を表す「0」です。
例えば、2行のGcSpreadGridに対して、InsertUnboundRowメソッドで先頭に1行追加します。次に、追加した先頭行の任意のセルを編集します。この際、CellValueChanging/CellValueChangedイベントで取得するe.Rowの値が「2」となります。
※この場合、正しい値は、先頭行を表す「0」です。
回避方法
Service Pack 1(v2.0.2018.0706)で修正済みです。
Service Pack 1(v2.0.2018.0706)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
ActiveCellPosition.Rowを使って、Rowインデックスの値を参照します。
※ただし、こちらの方法は、セルに直接入力して値を変更した場合および、ペーストを行った場合にのみ有効です。コード処理で値をセットした場合には、ActiveCellPositionの位置がずれるため、対処することができません。
◎サンプルコード(VB.NET)
◎サンプルコード(C#)
Service Pack 1(v2.0.2018.0706)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
ActiveCellPosition.Rowを使って、Rowインデックスの値を参照します。
※ただし、こちらの方法は、セルに直接入力して値を変更した場合および、ペーストを行った場合にのみ有効です。コード処理で値をセットした場合には、ActiveCellPositionの位置がずれるため、対処することができません。
◎サンプルコード(VB.NET)
Private Sub gcSpreadGrid1_CellValueChanged(sender As Object, e As CellValueChangedEventArgs) Handles gcSpreadGrid1.CellValueChanged gcSpreadGrid1.Cells(gcSpreadGrid1.ActiveCellPosition.Row, gcSpreadGrid1.ActiveCellPosition.Column).Background = System.Windows.Media.Brushes.LightBlue End Sub
◎サンプルコード(C#)
private void gcSpreadGrid1_CellValueChanged(object sender, GrapeCity.Windows.SpreadGrid.CellValueChangedEventArgs e)
{
gcSpreadGrid1.Cells[gcSpreadGrid1.ActiveCellPosition.Row, gcSpreadGrid1.ActiveCellPosition.Column].Background = System.Windows.Media.Brushes.LightBlue;
}
旧文書番号
41405