1

我有一些空的datagridview,它使用数据源是List through BindingSource。因为 AllowUserToAddRows = true,最初 datagridview 有一个空行。当我只选择这一行并关闭表单时,datagridview 会创建新的空对象。为什么会这样做?如何防止这种情况?谢谢。

选择空行: 在此处输入图像描述 我得到这个: 在此处输入图像描述

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

4

5 回答 5

8

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

if (gridView[0, e.RowIndex].Value == null)
    e.Cancel = true;
于 2012-11-12T13:21:01.657 回答
2

我建议确保您没有增加RowCount事件处理程序中的属性值RowLeave,例如CellLeave等。

例如:

DataGridView1.RowCount += 1;
于 2012-11-12T13:51:42.103 回答
2

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

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

myDataGridView.AllowUserToAddRows = false;

于 2017-12-05T05:33:52.380 回答
0

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

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

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

于 2016-01-27T19:22:22.040 回答
0

在此处输入图像描述 您可以在此处禁用“启用添加”

于 2020-08-07T04:12:23.370 回答