Привет
Я использую 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
Я неУ меня есть шанс проверить это, поэтому, если у вас есть какие-либо проблемы или вопросы, не стесняйтесь сообщать мне.
С уважением
РЕДАКТИРОВАТЬ: Если вы хотите пометить каждую ячейку в сетке, которая содержит слово " Active " или " Void ", просто используйте этокод:
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