如何从 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
即可。
但根据您的评论,您似乎需要这些单元格也具有值。因此,您需要处理 DataGridView
的 RowsRemoved
和 RowsAdded
事件,并使用行号刷新单元格值:
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
我使用的是 VS 2005 版。我正在开发一个 winform 桌面应用程序。假设我有一个未绑定的数据网格视图,table 如下所示:
删除前的原始数据网格:
如果我删除了 Stuff D(第 5 项),"Item No" 列应该会相应地自行重置。预期输出应为:
删除行后:
"Item No" 列不是自动编号,它只是我在用户添加新行(新资料)时逐渐分配的编号。我尝试在 rowremoved 事件中使用以下代码,但未能获得预期的输出。请帮忙。谢谢
如果目标只是在单元格中显示记录索引,则不需要为单元格赋值,在CellFormatting
事件中设置e.Value = e.RowIndex + 1
即可。
但根据您的评论,您似乎需要这些单元格也具有值。因此,您需要处理 DataGridView
的 RowsRemoved
和 RowsAdded
事件,并使用行号刷新单元格值:
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