一个关于cxgrid列背景色的问题
cxgrid 怎么更改某一列的背景颜色呢?比如,某列背景色设置为红色,运行时,就算cxgrid中一条数据都没有,该列还是显示红色。网上找来找去,问来问去都是根据内容来变色的,要是cxgrid中没记录,那背景就一片白色了
[解决办法]
var clmStyle: TCxStyle;begin clmStyle:=tcxstyle.Create(Self); clmStyle.Color:=clRed; View1.Columns[0].Styles.Content:=clmStyle; View1.Columns[0].Styles.Header:=clmStyle;end;
[解决办法]
//OnCustomDrawCell事件procedure TForm1.cxGrid1TableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);begin if SameText(Aviewinfo.Item.Name,cxGrid1TableView1.Columns[1].Name) then //指定你想要变色的列 begin Aviewinfo.Focused; ACanvas.Canvas.Brush.Color := clRed; end;end;
[解决办法]
我是3楼,楼主没试过我的方法吧?这样不就指定了两列了?
procedure TForm1.cxGrid1TableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);begin if (SameText(Aviewinfo.Item.Name,cxGrid1TableView1.Columns[0].Name)) or(SameText(Aviewinfo.Item.Name,cxGrid1TableView1.Columns[2].Name)) then //指定你想要变色的列 begin Aviewinfo.Focused; ACanvas.Canvas.Brush.Color := clRed; end;end;
[解决办法]
直接设置该列的Style就可以了
[解决办法]
楼主想要的效果估计用CxGrid实现不了吧。。设置Style也是一样,填充单元格的背景颜色而已,如果连单元格都没有,自然没有办法填充颜色了。
[解决办法]
计算出你想要填充颜色的区域,然后重绘咯。。。俺能想到的只有这个了。。。
[解决办法]
如果一行数据都没有,那只好设置标题的背景色了。要么就要自己手动画上去!