cxGrid两个知识点:保持设计时的列宽和隔行着色
1、保持合适的列宽且充满整个区域
cxgrid默认情况下,列有一个属性MinWidth,这个属性默认情况下是20,把它改为0。然后把cxgridview的columnAutoWidth设置为true。这样列宽就会在充满整个区域的基础上,根据设计时候的长度进行微调。再也不会在dataset open之后胡乱变换长度了。
2、隔行换色
不能在gridDrawCell事件下写类似于这种的着色代码:
{if AViewInfo.RecordViewInfo.Index mod 2 = 0 then
begin
ACanvas.Canvas.Brush.Color := rgb(252,240,235);
ACanvas.Font.Color := clblack;
end
else
begin
ACanvas.Canvas.Brush.Color:=clWhite;
ACanvas.Font.Color := clblack;
end;
if AViewInfo.Selected then
begin
ACanvas.Canvas.Brush.Color := clmenuhighlight;
ACanvas.Font.Color := clwhite;
end; }
这样的着色是有毛病的,如果记录数超过一屏,用鼠标往下拉的时候你就会发现不是隔一行着色,而是一个色。因为gridDrawCell只能处理视觉以内的部分。
cxgridview有三个style可以很方便的设置,不用任何代码,这三个style是:
ContentEven(偶数行style)、ContentOdd(奇数行style)、selection(选中行style)。这三个style可以设置出完美的隔行着色效果。