[FlexGrid for WinForms] アンバウンドグリッドでAllowAddNewにtrueを設定した場合、Rows.Countの設定値が正しく反映されない

文書番号 : 82111     文書種別 : Bug
登録日 : 2017/04/06     最終更新日 : 2017/05/17

対象製品

Studio for WinForms

ステータス

修正済み

詳細

C1FlexgridのRows.Countを設定したのち、その値を参照すると、新規行の分(1行)が追加された値が戻ります。
Rows.Countを設定する場所は、Form_Load内、ボタンクリック時など、どこで設定しても発生します。

※コンストラクタ内でRows.Countを参照すると設定したままの値が返りますが、通常行が存在しないケースではこの場所で設定しても新規行の分(1行)が追加された値が戻ります。

回避方法

この問題はバージョン4.0.20171.260で修正されました。
※ .NET Framework 2.0用アセンブリはメンテナンスモードに移行したため、C1.Win.C1xxxx.2.dllでの修正は行われません。
  .NET Framework 4.0用アセンブリ(C1.Win.C1xxxx.4.dll)をご利用ください。

修正版の適用方法については、アップデートの方法を参照してください。

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

いったんAllowAddNewをfalseにしてRows.Countを設定したのち、Rows.Countの値を一つ減らしてからAllowAddNewをtrueに設定しなおします。

◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs)
  cfgList.AllowAddNew = False
  cfgList.Rows.Count = 3
End Sub
Private Sub button1_Click(sender As Object, e As EventArgs)
  cfgList.Rows.Count = cfgList.Rows.Count - 1
  cfgList.AllowAddNew = True
End Sub

◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
  cfgList.AllowAddNew = false;
  cfgList.Rows.Count = 3;
}
private void button1_Click(object sender, EventArgs e)
{
  cfgList.Rows.Count = cfgList.Rows.Count - 1;
  cfgList.AllowAddNew = true;
}