[True DBGrid for WinForms] 非連結グリッドでAllowAddNewプロパティをTrueにすると、グリッド内にマウスポインタを移動したときに例外が発生することがある

文書番号 : 82387     文書種別 : 既知の問題     登録日 : 2017/10/10     最終更新日 : 2017/12/13
文書を印刷する
対象製品
ComponentOne for WinForms
ステータス
修正済み
詳細
AllowAddNewプロパティをTrueに設定した非連結グリッドで、AddRowメソッドで行を追加し、追加した行にデータを設定したのち、グリッド内にマウスポインタを移動すると、System.NullReferenceExceptionの例外エラーが発生することがあります。
回避方法
この問題はバージョン4.0.20173.286で修正されました。

※修正版を適用しない場合の回避方法は以下の通りです。

既存の行に、「AddRows(m)」のような形で空行を追加してデータを設定するのではなく、すべての行をAddRow("x;y;z")のような形のデータ付きで追加します。

◎サンプルコード(VB)
' Me.C1TrueDBGrid1.SetDataBinding()
' Me.C1TrueDBGrid1.AddRow("1;1;1")
' Me.C1TrueDBGrid1.AddRow("2;2;2")
' Dim index As Integer = Me.C1TrueDBGrid1.AddRows(2)
' Me.C1TrueDBGrid1(index, "f1") = "3"
' Me.C1TrueDBGrid1(index, "f2") = "3"
' Me.C1TrueDBGrid1(index, "f3") = "3"

'**** 回避コード ****
Me.C1TrueDBGrid1.AddRow("1;1;1")
Me.C1TrueDBGrid1.AddRow("2;2;2")
Me.C1TrueDBGrid1.AddRow("3;3;3")
Me.C1TrueDBGrid1.AddRow(";;")

◎サンプルコード(C#)
this.c1TrueDBGrid1.SetDataBinding();
// this.c1TrueDBGrid1.AddRow("1;1;1");
// this.c1TrueDBGrid1.AddRow("2;2;2");
// int index = this.c1TrueDBGrid1.AddRows(2);
// this.c1TrueDBGrid1(index, "f1") = "3";
// this.c1TrueDBGrid1(index, "f2") = "3";
// this.c1TrueDBGrid1(index, "f3") = "3";

//**** 回避コード ****
this.c1TrueDBGrid1.AddRow("1;1;1");
this.c1TrueDBGrid1.AddRow("2;2;2");
this.c1TrueDBGrid1.AddRow("3;3;3");
this.c1TrueDBGrid1.AddRow(";;");