DevExpress的gridcontrol里面,如何设置指定行的某列的背景色?

时间:2021-06-09 14:51:56
假设该gridcontrol里面的gridview1,它已经获取了一张表的数据,如下:

字段1   字段2    字段3
陈      18       男
李      22       男



现在要求在程序里对字段1为“李”的那行的字段3的那一列的背景色设置为红色,这个代码该怎么写?


我现在知道可以设置字段1的这一列的背景色为红色,如下:

private void gridView_1CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {

            if (e.DisplayText.IndexOf("李") > -1)
            {
                e.Appearance.BackColor = Color.Red;
                
            }
        }





但是要设置字段3的那一列的背景色设置为红色,这个代码该怎么写?

4 个解决方案

#1


本来想找“字段3”这一个列的CustomDrawCell函数,但是由于数据源是动态生成的,字段1,字段2,字段3也是动态生成的,所以没有“字段3”这一个列的CustomDrawCell函数,那该怎么办呢?

#2


顶一下,希望有人来解答。

#3


参数e中有e.Column吧,你根据这个判断列是否和字段3符合

#4


在楼上的提示下,写了如下代码,基本解决了问题:

先定义一个全局变量 n ;然后:


private void gridView_1CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {

            if (e.DisplayText.IndexOf("李") > -1)
            {
                n = e.RowHandle;
                                
            }

            if ( e.RowHandle == n && e.Column.FieldName  == "字段3" && n != 0 )
            {
                e.Appearance.BackColor = Color.Red;
            }

        }


#1


本来想找“字段3”这一个列的CustomDrawCell函数,但是由于数据源是动态生成的,字段1,字段2,字段3也是动态生成的,所以没有“字段3”这一个列的CustomDrawCell函数,那该怎么办呢?

#2


顶一下,希望有人来解答。

#3


参数e中有e.Column吧,你根据这个判断列是否和字段3符合

#4


在楼上的提示下,写了如下代码,基本解决了问题:

先定义一个全局变量 n ;然后:


private void gridView_1CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {

            if (e.DisplayText.IndexOf("李") > -1)
            {
                n = e.RowHandle;
                                
            }

            if ( e.RowHandle == n && e.Column.FieldName  == "字段3" && n != 0 )
            {
                e.Appearance.BackColor = Color.Red;
            }

        }