我正在使用DataGridView
并将AllowUserToAddRows
设置为True
,因此一旦开始编辑行,另一个空行就会添加到控件中。
但是我想知道一种方法来防止下一行被添加,直到用户完成输入前一行的数据。这意味着当DataGridView
(文本框)的所有列都不为空时,将添加下一个空白行。
我的另一种方法是设置一个行验证函数,当用户试图离开不完整的行时,该函数会调用。
答案 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();
}
}