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

文書番号 : 82387     文書種別 : Bug
登録日 : 2017/10/10     最終更新日 : 2017/10/10

対象製品

Studio for WinForms

ステータス

回避方法あり

詳細

AllowAddNewプロパティをTrueに設定した非連結グリッドで、AddRowメソッドで行を追加し、追加した行にデータを設定したのち、グリッド内にマウスポインタを移動すると、System.NullReferenceExceptionの例外エラーが発生することがあります。

回避方法

既存の行に、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(";;");