Member 12414126 Ответов: 1

Как я могу вычеркнуть определенные данные в элементе управления datagridview


у меня есть datagridview в моем проекте, я хочу вычеркнуть определенные данные, если одна из ячеек в данных читает "Void", но когда я сделал это с кодом, я использовал все данные в datagridview, что означало принятие первого аргумента ко всем данным, несмотря на то, что некоторые данные в указанных ячейках читаются "Active"

Что я уже пробовал:

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 Ответов

Рейтинг:
1

Richard Deeming

Установите стили для ячейки, а не стиль ячейки по умолчанию:

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

NB: Поскольку стиль относится к одноразовым объектам, вероятно, было бы неплохо хранить стили в полях и повторно использовать один и тот же экземпляр стиля.

Стили ячеек в элементе управления Windows Forms DataGridView | Microsoft Docs[^]