繁体   English   中英

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

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

我正在使用VS 2005版。 我正在开发winform桌面应用程序。 假设我有一个未绑定的datagridview,其表如下所示:

删除之前的原始数据网格:

删除之前的原始数据网格

如果我删除了东西D(项目编号5),则“项目编号”列应相应地进行自身重置。 预期输出应为:

删除行后:

删除行后

“项目编号”列不是自动编号,它只是我在用户添加到新行(新材料)中时递增分配的编号。 我尝试在rowremoved事件中使用以下代码,但未能实现预期的输出。 请帮忙。 谢谢。

如果目标只是在单元格中显示记录索引,则无需为单元格分配值,并且足以在CellFormatting事件中设置e.Value = e.RowIndex + 1

但是根据您的评论,看来您也需要这些单元格也具有值。 所以,你需要处理RowsRemovedRowsAdded的事件DataGridView和刷新行号为单元格的值:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM