首页 > 解决方案 > 如何在加载时使用条件设置 DataGridView Rows FontStyle?

问题描述

如何根据条件更改 DataGridView 的所有行的字体样式?

我的条件是if Cell Value Equal 0 then FontStyle = Strikeout otherwise Regular

Private Function DetailGridViewSetStyle()
    Dim dgv As DataGridView = DetailDataGridView
    Dim dgvInd As Integer = dgv.CurrentRow.Index
   
    For cc As Integer = 0 To dgv.ColumnCount - 1
        If dgv.Item(4, dgvInd).Value = 0 Then
            dgv.DefaultCellStyle.Font = New Font("ARIAL", 8, FontStyle.Strikeout)
        ElseIf dgv.Item(4, dgvInd).Value = 1 Then
            dgv.DefaultCellStyle.Font = New Font("ARIAL", 8, FontStyle.Regular)
        End If
    Next
End Function

标签: vb.netwinformsif-statementdatagridviewfont-style

解决方案


  • 仅在需要返回某些内容时才使用“功能”,这不是您的情况,请改用 Sub。
  • dgv.DefaultCellStyle.Font将为所有数据网格设置字体样式,您需要从指定行设置字体样式,然后使用row.DefaultCellStyle.Font

如果我理解您的问题,这是您需要的代码:

Private Sub DetailGridViewSetStyle()
        Dim dgv As DataGridView = DetailDataGridView

        For Each row As DataGridViewRow In dgv.Rows
            Dim Value As Boolean = CBool(row.Cells(4).Value)

            If Value = False Then
                row.DefaultCellStyle.Font = New Font("ARIAL", 8, FontStyle.Strikeout)
            Else
                row.DefaultCellStyle.Font = New Font("ARIAL", 8, FontStyle.Regular)
            End If

        Next
    End Sub

推荐阅读