我正在尝试以编程方式删除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(行) 下一步
我不断收到错误消息“无法删除未提交的新行”。 谢谢
答案 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
你的其他代码就在这里。