删除dataGridView的最后一行空行

时间:2012-11-12 13:16:11

标签: c# .net winforms datagridview

我有一些空的datagridview,它使用的数据源是List to BindingSource。因为AllowUserToAddRows = true,所以最初datagridview有一个空行。当我只选择此行并关闭表单时,datagridview会创建新的空对象。它为什么这样做?怎么预防这个? 感谢。

选择空行: enter image description here 我得到了这个: enter image description here

结论:经过多次尝试寻找解决方案后,我决定使用datagridview和两个按钮(添加行和删除行)创建UI控件。在这一点上,我不再按计划做,但我仍然很高兴知道解决方案。

6 个答案:

答案 0 :(得分:8)

您可以处理RowValidating事件以验证行是否为空。如果是,则取消事件和行将不会被添加。

if (gridView[0, e.RowIndex].Value == null)
    e.Cancel = true;

答案 1 :(得分:2)

我建议您确保不要在RowCountRowLeave等事件处理程序中增加CellLeave属性的值。

例如:

DataGridView1.RowCount += 1;

答案 2 :(得分:0)

在FormClosing事件处理程序中尝试显式清除DataSource。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    dataGridView1.DataSource = null;
}

保留在内存中的绑定可能会导致此问题。

答案 3 :(得分:0)

是的,DataGridView底部总会有一个空行。它允许用户在运行时添加新数据;他们所要做的就是开始输入新行。

要禁用它,您还需要阻止用户添加新行。通过将DataGridView控件的AllowUserToAddRows属性设置为False来执行此操作:

myDataGridView.AllowUserToAddRows = false;

答案 4 :(得分:0)

enter image description here 您可以在此处禁用“启用添加”

答案 5 :(得分:-2)

将DataGridView.AllowUsertoAddRows的属性设置为False。

或将其添加到Form_Load函数中:

dataGridView1.AllowUserToAddRows = false;