我正在尝试在Delphi XE6中更改DBGRID组件的特定列中的Title单元格的颜色。当网格按特定列排序时,我习惯绘制列标题。
DBGRID1.Columns[1].Title.Color := clBlue;
这可能吗?或者有更好的方法来突出显示已排序的列?
答案 0 :(得分:1)
尝试覆盖程序TCustomDBGrid.DrawCellBackground以强制标题的背景颜色:
procedure TMyDBGrid.DrawCellBackground(const ARect: TRect; AColor: TColor; AState: TGridDrawState; ACol, ARow: integer);
begin
if (FLastSortedColumnIdx = ACol) and (ACol >= 0) and (ARow = -1) then
AColor := Columns[ACol].Title.Color;
inherited;
end;
FLastSortedColumnIdx是存储已排序列的Column.Index的字段。
应该在Delphi XE3中工作。