从datagridview中删除所有当前单元格

时间:2015-01-26 16:16:38

标签: vb.net winforms datagridview

任何人都可以帮我制作以下代码来删除datagridview中所有“突出显示”的单元格(当前单元格)内容吗?它总是只删除最后一个选定单元格的内容

Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
    If e.KeyData = Keys.Delete Then

        For Each cell In DataGridView1.SelectedCells
            DataGridView1.CurrentCell.Value = ""
        Next
    End If
End Sub

2 个答案:

答案 0 :(得分:1)

Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
    If e.KeyData = Keys.Delete Then

        For Each cell In DataGridView1.SelectedCells
            cell.Value = ""
        Next
    End If
End Sub

请注意,您要查看所有选定的单元格(请查看For Each cell In...),然后依次将cell设置为每个选定的DataGridViewCell。当你清空价值时就是这样。

您的代码只为每个选定的单元格清空CurrentCell一次。您应该了解迭代器和For Each语句的工作原理。

答案 1 :(得分:0)

在For循环中,您没有引用迭代变量" Cell" - 您只是引用" CurrentCell"在迭代时不会改变。