如何将交替行模式应用于仅一个datagridview列

时间:2013-11-02 15:21:57

标签: vb.net datagridview

我希望找到一种方法将我的交替行模式应用到单个datagridview列。

我有一个使用vb.net的Windows窗体应用程序。现在我有一个模式,将每个其他datagridview单元格的背景颜色更改为不同的颜色。我的图案是白色,然后是浅蓝色。我在下面添加了一张图片和我的代码。此代码将此模式应用于整个datagridview,但我只想将其应用于一个,例如第二列索引。

           With Me.DataGridView1
                .DefaultCellStyle.BackColor = Color.White
                .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
            End With

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以在datagridview的cellformatting事件中添加if语句,如下所示:

Private Sub DataGridView1_ConditionalFormatting_StatusCell(ByVal sender As Object, ByVal e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    If e.ColumnIndex = 2 Then
        With Me.DataGridView1
            If e.RowIndex Mod 2 = 0 Then
                e.CellStyle.ForeColor = Color.White
            Else
                e.CellStyle.ForeColor = Color.AliceBlue
            End If
        End With
    End If
End Sub

答案 1 :(得分:0)

如果要为网格中的某些列提供备用样式 像这样使用cellformating事件

Private Sub TDBGrid1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles TDBGrid1.CellFormatting
    With TDBGrid1
        If Not e.RowIndex Mod 2 = 0 AndAlso e.ColumnIndex > 3 Then
            e.CellStyle.BackColor = Color.Cyan
        Else
            e.CellStyle.BackColor = Color.White
        End If
    End With
    End Sub

这里我想要列式索引的替代样式,大于3