可以通过各种事件解决, 但有一个问题无法回避, 即记录移动时抖动将非常厉害.
1. DbGrid.DefaultDraw := False;
2. 相关DataSet.AfterScroll事件中写如下代码:
DbGrid.Invalidate;
3. 写DbGrid.OnDrawColumnCell事件
begin
if State = gdSelected then
with Dbgrid.Canvas do
begin
Brush.Color := clRed;
Brush.Style := bsSolid;
FillRect(Rect);
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;