DevExpress开发:GridControl根据单元格内容进行着色

767 阅读1分钟

1.添加gridview 的CustomDrawCell事件

        private void gridview1_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
        {
        }

2.方法实现

            DevExpress.Utils.AppearanceDefault appRed = new DevExpress.Utils.AppearanceDefault
               (Color.White, Color.Red, Color.Red, Color.Red);//定义单元格如果有内容则显示的颜色
            DevExpress.Utils.AppearanceDefault appWhite = new DevExpress.Utils.AppearanceDefault
               (Color.Black, Color.White, Color.White, Color.White);//定义单元格没有内容则显示的颜色
            int Dates = Int32.Parse(nud_Date.Value.ToString());
            for (DateTime dt = dtp_FlightDate.Value.AddDays(-Dates); dt <= dtp_EDate.Value.AddDays(Dates); dt = dt.AddDays(1))
            {                
                if (e.Column.FieldName == dt.ToString("yyyy-MM-dd"))//想要着色的单元格
                {
                    string strTemp = gv_Onduty.GetRowCellValue(e.RowHandle, e.Column).ToString().Trim();
                    if (string.IsNullOrEmpty(strTemp))
                    {
                        DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, appWhite);
                        return;
                    }
                    else
                    {
                        DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, appGreen);
                        return;
                    }
                    e.CellValue = null;
                }
            }

3.效果展示

image.png