画stringgrid背景时画不到第一格(20分)

  • 主题发起人 少爷的拐杖
  • 开始时间

少爷的拐杖

Unregistered / Unconfirmed
GUEST, unregistred user!
我想画一个只有1列,11行的stringgrid,前4行一种颜色,后7行另一种颜色。
现执行后除了第一行颜色没变,其他都变的符合要求,怎么回事啊?
代码如下:
procedure TFm_OffSet_Box.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
with StringGrid1 do
begin
if ARow<3 then
begin
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 12, Rect.Top + 8, Cells[ACol, ARow]);
Canvas.Brush.Color:=$00B8C1C7;
end
else
begin
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 12, Rect.Top + 8, Cells[ACol, ARow]);
Canvas.Brush.Color:=$00DCB8B8;
end;
end;
end;
 
可能是程序运行后,第一行获得了焦点.
 
你的第一行是否设成了FixRow,你试将FixRows属性设为“0"。
 
to bswilson:stringgrid的enable已经事先设为false,不能获得焦点。
to liuyan:没有固定列。固定行列都设为0了。
 
Canvas.Brush.Color:= $00B8C1C7;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left + 12, Rect.Top + 8, Cells[ACol, ARow]);
试一下,我运行时是好的
 
解决了。liuyan是对的
 
顶部