AllowUserToAddRowsプロパティにTrueが設定されている場合、Rows.Addメソッドで行の追加を行うと新規行の上に追加される

文書番号 : 40631     文書種別 : 技術情報     登録日 : 2017/07/26     最終更新日 : 2017/07/26
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
GcMultiRow.AllowUserToAddRowsプロパティがTrueの場合、グリッドの末尾行は正規の行とはみなされず、AddRows.Addメソッドを実行したときには、新規行の前の正規の行の次に追加され、結果として新規行の前に挿入される形になります。この動作は製品の仕様に基づくものとなります。

現在の新規行を確定して正規の行に変換した後に、新たな新規行をコードで追加する場合には、NotifyCurrentCellDirty(True)を呼び出します。

[Visual Basic]
Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    GcMultiRow1.Template = Template.CreateGridTemplate(2)
    GcMultiRow1.RowCount = 3

    GcMultiRow1.AllowUserToAddRows = True

    For i As Integer = 0 To GcMultiRow1.RowCount - 1
        GcMultiRow1.SetValue(i, 0, i)
    Next

    GcMultiRow1.CurrentCellPosition = New CellPosition(GcMultiRow1.RowCount - 1, 0)
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    '' 新規行の上に追加されます
    'GcMultiRow1.Rows.Add()

    ' 回避方法
    GcMultiRow1.NotifyCurrentCellDirty(True)
End Sub

[C#]
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    gcMultiRow1.Template = Template.CreateGridTemplate(2);
    gcMultiRow1.RowCount = 3;
    gcMultiRow1.AllowUserToAddRows = true;

    for (int i = 0; i < gcMultiRow1.RowCount; i++)
    {
        gcMultiRow1.SetValue(i, 0, i);
    }

    gcMultiRow1.CurrentCellPosition = new CellPosition(gcMultiRow1.RowCount - 1, 0);
}

private void button1_Click(object sender, EventArgs e)
{
    //// 新規行の上に追加されます
    //gcMultiRow1.Rows.Add();

    // 回避方法
    gcMultiRow1.NotifyCurrentCellDirty(true);
}