只有在编辑行完成后才允许添加下一行

时间:2012-02-23 05:17:44

标签: c# datagridview rows

我正在使用DataGridView并将AllowUserToAddRows设置为True,因此一旦开始编辑行,另一个空行就会添加到控件中。

但是我想知道一种方法来防止下一行被添加,直到用户完成输入前一行的数据。这意味着当DataGridView(文本框)的所有列都不为空时,将添加下一个空白行。

我的另一种方法是设置一个行验证函数,当用户试图离开不完整的行时,该函数会调用。

1 个答案:

答案 0 :(得分:4)

我认为你会将AllowUserToAddRows设置为false,然后为单元格更改事件添加处理程序。在处理程序中,如果编辑位于最后一行,请检查该行中的所有编辑是否包含其中的内容。如果他们这样做,请添加一行。

编辑:这样的事情:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridView1.RowCount > 0 && e.RowIndex == dataGridView1.RowCount - 1)
    {
        foreach (DataGridViewCell cell in dataGridView1.Rows[e.RowIndex].Cells)
        {
            if (cell.Value == null)
            {
                return;
            }
        }
        dataGridView1.Rows.Add();
    }
}