如何从 datagridview 中删除一行并重置特定列 (vb.net 2005)

How to remove a row from datagridview and reset a particular column (vb.net 2005)

我使用的是 VS 2005 版。我正在开发一个 winform 桌面应用程序。假设我有一个未绑定的数据网格视图,table 如下所示:

删除前的原始数据网格:

如果我删除了 Stuff D(第 5 项),"Item No" 列应该会相应地自行重置。预期输出应为:

删除行后:

"Item No" 列不是自动编号,它只是我在用户添加新行(新资料)时逐渐分配的编号。我尝试在 rowremoved 事件中使用以下代码,但未能获得预期的输出。请帮忙。谢谢

如果目标只是在单元格中显示记录索引,则不需要为单元格赋值,在CellFormatting事件中设置e.Value = e.RowIndex + 1即可。

但根据您的评论,您似乎需要这些单元格也具有值。因此,您需要处理 DataGridViewRowsRemovedRowsAdded 事件,并使用行号刷新单元格值:

Public Sub RefreshRowNumbers(g As DataGridView)
    For Each r As DataGridViewRow In g.Rows
        r.Cells(1).Value = r.Index + 1
    Next
End Sub

Private Sub DataGridView1_RowsRemoved(sender As Object, _
    e As DataGridViewRowsRemovedEventArgs) Handles DataGridView1.RowsRemoved
    RefreshRowNumbers(DirectCast(sender, DataGridView))
End Sub

Private Sub DataGridView1_RowsAdded(sender As Object, _
    e As DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
    RefreshRowNumbers(DirectCast(sender, DataGridView))
End Sub