You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改DevExpress控件中GridControl(GridView)的行背景色

DevExpress GridView 任意行背景色修改方案

你之前使用的GridView2.Appearance.FocusedRow.BackColor是全局焦点行样式配置,仅作用于当前选中的焦点行,无法实现指定任意行的样式自定义。

DevExpress GridControl 没有提供原生DataGridView那样直接修改指定行样式的属性,其渲染逻辑由事件驱动,可通过以下方案实现需求:


实现步骤

  1. 首先提前定义需要设置特殊背景色的行标识(可以是行号、行绑定数据的某个字段值等),示例以设置第10行(索引从0开始)背景色为红色为例:
' 全局定义需要高亮的行号列表
Dim highlightRowIndexes As New List(Of Integer) From {10}
  1. 为GridView绑定RowStyle事件,在事件中判断当前行是否属于需要设置背景色的范围,赋值对应外观即可:
Private Sub GridView2_RowStyle(sender As Object, e As DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs) Handles GridView2.RowStyle
    ' 判断当前行索引是否在高亮列表中
    If highlightRowIndexes.Contains(e.RowHandle) Then
        e.Appearance.BackColor = Color.Red
        ' 可选:禁止默认样式覆盖自定义设置
        e.HighPriority = True
    End If
End Sub

动态更新说明

如果需要运行时动态修改某行的背景色,只需要修改highlightRowIndexes列表的内容,然后调用以下代码触发GridView重绘对应行即可:

' 示例:运行时新增第5行设为高亮
highlightRowIndexes.Add(5)
' 刷新对应行触发重绘
GridView2.RefreshRow(5)
' 如果修改了多行,可调用全局刷新
' GridView2.RefreshData()

其他适配场景

如果需要根据行绑定的数据源内容设置背景色,可在RowStyle事件中直接取行数据判断,不需要依赖行号:

Private Sub GridView2_RowStyle(sender As Object, e As DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs) Handles GridView2.RowStyle
    ' 跳过自动新增行、分组行等特殊行
    If e.RowHandle < 0 Then Return
    ' 取当前行绑定的数据源对象,示例假设数据源为YourModel类,有Status字段
    Dim rowData As YourModel = TryCast(GridView2.GetRow(e.RowHandle), YourModel)
    If rowData IsNot Nothing AndAlso rowData.Status = "异常" Then
        e.Appearance.BackColor = Color.LightCoral
        e.HighPriority = True
    End If
End Sub

内容的提问来源于stack exchange,提问作者user16600932

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:45:02