删除datagridview中的最后一行

时间:2014-01-16 13:16:07

标签: vb.net

我正在尝试以编程方式删除datagridview的最后一行,但我无法。这是我到目前为止所尝试的内容:

DataGridView1.Rows.RemoveAt(DataGridView1.Rows.Count - 1)

我还尝试选择最后一行,然后将其删除,但这既不起作用

Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = True

DataGridView1.Rows.Remove(DataGridView1.CurrentRow)

Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = True

对于每一行As DataGridViewRow在DataGridView1.SelectedRows中             DataGridView1.Rows.Remove(行)         下一步

我不断收到错误消息“无法删除未提交的新行”。 谢谢

4 个答案:

答案 0 :(得分:3)

尝试使用此行为属性设置datagridview AllowUserToAddRows将其设为False
然后使用此代码

DataGridView1.Rows.RemoveAt(DataGridView1.Rows.Count - 1)

答案 1 :(得分:0)

您可能需要在DataSource中的行上调用RejectChanges。

对于新行,这意味着删除。另见:

答案 2 :(得分:0)

我没有删除最后一行,而是绕过了它。我想出了如何选择除最后一行之外的所有行,然后我实现了仅引用所选行的代码。

Me.DataGridView1.ClearSelection()

Me.DataGridView1.SelectAll()
Me.DataGridView1.Rows(Me.DataGridView1.RowCount - 1).Selected = False

答案 3 :(得分:0)

除了删除最后一个未提交的行,您可以阻止用户选择它。 将下面的代码插入到datagridview的cellclick事件中。

 Dim i As Integer = DataGridView1.CurrentRow.Index

    If DataGridView1.Item(0, i).Value.ToString() = "" Then
        MsgBox("Sorry...Blank Row")
        DataGridView1.ClearSelection()
        DataGridView1.Rows(i - 1).Selected = True
        i = i - 1
    End If

你的其他代码就在这里。