CellContentClickイベントで現在の行を削除すると例外が発生する場合がある

文書番号 : 26212     文書種別 : 不具合     最終更新日 : 2008/09/08
文書を印刷する
対象製品
MultiRow for Windows Forms 5.0J
発生環境
v5.0.2008.0430
状況
修正済み
詳細
GcMultiRow.CellContentClick イベントで現在の行を削除するとき、現在のセルがインスタンス化されていると、NullReferenceException が発生します。たとえば、次のようなケースがあります。

・テンプレートに ButtonCell を配置し、実行時にそのボタンのスタイルを変更している。
回避方法
この現象は、MultiRow for Windows Forms 5.0J Service Pack 1 (v5.0.2008.0930)および以降の修正版で修正されています。最新のService Packのダウンロードはこちら

または、次のいずれかの方法でこの現象を回避できます。

・GcMultiRow.CellContentClick イベントの代わりに GcMultiRow.CellMouseClick イベントを使用する。

[Visual Basic]
Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_CellMouseClick(ByVal sender As System.Object, ByVal e As CellMouseEventArgs) Handles GcMultiRow1.CellMouseClick
  If e.Scope = CellScope.Row Then
    If e.CellIndex = 0 Then
      GcMultiRow1.Rows.Remove(GcMultiRow1.CurrentRow)
    End If
  End If
End Sub

[C#]
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_CellMouseClick(object sender, CellMouseEventArgs e)
{
  if (e.Scope == CellScope.Row)
  {
    if (e.CellIndex == 0)
    {
      gcMultiRow1.Rows.Remove(gcMultiRow1.CurrentRow);
    }
  }
}

・可能な場合、セルのインスタンス化を避ける。
 たとえば、セルのスタイルや値をテンプレートで設定する場合はこの現象は発生しません。
キーワード
MLTR06993

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