我在dbgrid的事件中这么写的
procedure Tfrmygxx.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (State = [gdSelected]) then
If Not DbGrid1.SelectedRows.CurrentRowSelected then
DbGrid1.Canvas.Brush.Color:=clyellow;
dbgrid1.Canvas.font.Color:=clblack;
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
为什么出现的结果会是选中的第一列仍是系统默认的颜色?
procedure Tfrmygxx.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (State = [gdSelected]) then
If Not DbGrid1.SelectedRows.CurrentRowSelected then
DbGrid1.Canvas.Brush.Color:=clyellow;
dbgrid1.Canvas.font.Color:=clblack;
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
为什么出现的结果会是选中的第一列仍是系统默认的颜色?
procedure Tfrmygxx.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (State = [gdSelected]) then
If Not DbGrid1.SelectedRows.CurrentRowSelected then
if datacol=0 then
begin
DbGrid1.Canvas.Brush.Color:=clyellow;
dbgrid1.Canvas.font.Color:=clblack;
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
end;