如何在DataGridView中删除数据?

时间:2018-10-16 08:41:58

标签: vb.net datagridview

我的项目中有一个DataGridView,如果数据中的一个单元格读取“ Void”,我希望删除一个特定的数据,但是当我对代码进行操作时,我使用了DataGridView中的所有数据,这表示接受尽管所述单元格中的某些数据仍然是所有数据的第一个参数为“活动”。

下面是我的代码:

For Each r As DataGridViewRow In frmCheckOut_Room.DataGridView2.Rows
    If (r.Cells(9).Value) = "Void" Then
        r.DefaultCellStyle.ForeColor = Color.Red
        r.DefaultCellStyle.Font = New Font("Microsoft Sans Serif", 8, FontStyle.Strikeout)
    ElseIf (r.Cells(9).Value) = "Active" Then
        r.DefaultCellStyle.Font = New Font("Microsoft Sans Serif", 8)
        r.DefaultCellStyle.BackColor = Color.Orange
    End If
Next

1 个答案:

答案 0 :(得分:0)

您好
,我使用网格的 CellFormatting 事件来实现此目的。例如:

 Private Sub DataGridView2_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView2.CellFormatting
    If e.ColumnIndex = DataGridView2.Columns("YOUR_COLUMN_NAME").Index AndAlso e.Value IsNot Nothing Then
        If (e.Value = "Void") Then
            DataGridView2.Rows(e.RowIndex).DefaultCellStyle.Font = New Font("Microsoft Sans Serif", 8, FontStyle.Strikeout)
            DataGridView2.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Red
        ElseIf (e.Value = "Active") Then
           DataGridView2.Rows(e.RowIndex).DefaultCellStyle.Font = New Font("Microsoft Sans Serif", 8)
           DataGridView2.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Orange
        End If
    End If
End Sub

我更喜欢使用列名而不是列索引,但是如果您愿意,可以替换If e.ColumnIndex = DataGridView2.Columns("YOUR_COLUMN_NAME").Index Then
使用:

If e.ColumnIndex = 9 Then

我没有机会进行测试,因此,如果您有任何问题或疑问,请随时给我发消息。
问候
编辑: 如果要标记网格中包含单词“ 活动”或“ 无效”的每个单元格,请使用以下代码:

Private Sub DataGridView2_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView2.CellFormatting
If (e.Value.GetType() = GetType(String)) Then
    If (e.Value = "Void") Then
        DataGridView2(e.ColumnIndex, e.RowIndex).Style.Font = New Font("Microsoft Sans Serif", 8, FontStyle.Strikeout)
        DataGridView2(e.ColumnIndex, e.RowIndex).Style.BackColor = Color.Red
    ElseIf (e.Value = "Active") Then
       DataGridView2(e.ColumnIndex, e.RowIndex).Style.Font = New Font("Microsoft Sans Serif", 8)
       DataGridView2(e.ColumnIndex, e.RowIndex).Style.BackColor = Color.Orange
    End If
End If
End Sub