C# 仅在编辑行完成后才允许添加下一行
我使用的是DataGridView,并将AllowUserToAddress设置为True,这样一旦开始编辑一行,另一个空行就会添加到控件中 但是,我想知道一种方法,在用户完成输入前一行的数据之前,防止添加下一行。这意味着当DataGridView的所有列(即文本框)变为非空时,将添加下一个空行C# 仅在编辑行完成后才允许添加下一行,c#,datagridview,rows,C#,Datagridview,Rows,我使用的是DataGridView,并将AllowUserToAddress设置为True,这样一旦开始编辑一行,另一个空行就会添加到控件中 但是,我想知道一种方法,在用户完成输入前一行的数据之前,防止添加下一行。这意味着当DataGridView的所有列(即文本框)变为非空时,将添加下一个空行 我的替代方法是设置一个行验证函数,当用户试图留下一个不完整的行时,该函数将得到调用 我认为您应该将AllowUserToAddress设置为false,然后为cell changed事件添加一个处理程序
我的替代方法是设置一个行验证函数,当用户试图留下一个不完整的行时,该函数将得到调用 我认为您应该将AllowUserToAddress设置为false,然后为cell changed事件添加一个处理程序。在处理程序中,如果编辑在最后一行,请检查该行中的所有编辑是否都包含某些内容。如果有,则添加一行 编辑:类似这样的内容:
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();
}
}
我认为您应该将AllowUserToAddress设置为false,然后为cell changed事件添加一个处理程序。在处理程序中,如果编辑在最后一行,请检查该行中的所有编辑是否都包含某些内容。如果有,则添加一行 编辑:类似这样的内容:
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();
}
}