为什么 TDrawGrid.OnDrawCell 在 Brush.Style 是 bsFDiagonal 时绘制黑色背景?

Why does TDrawGrid.OnDrawCell draw black background when Brush.Style is bsFDiagonal?

我有以下代码(分配给 DrawGrid1.OnDrawCell 事件):

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  DrawGrid1.Canvas.Brush.Style:= bsFDiagonal;
  DrawGrid1.Canvas.Brush.Color:= clSkyBlue;
  DrawGrid1.Canvas.FillRect(Rect);
end;

它总是绘制黑色背景,即使 DrawGrid1.Color 属性已设置为 clRed。我还尝试更改 Pen 和 Font 属性,但没有成功。 我在这里错过了什么?

ps:我检查过这段代码:Diagonal brush style gives me black area。 我没有看到问题和答案之间有什么区别(除了注释行)以及该代码对我不起作用,正如我提到的,我已经尝试更改 Pen 属性但没有任何结果。 我只想要红色背景和天蓝色对角线。

已解决,必须在 FillRect 之前添加 SetBKColor():

DrawGrid1.Canvas.Brush.Style:= bsFDiagonal;
DrawGrid1.Canvas.Brush.Color:= clSkyBlue;
SetBkColor(DrawGrid1.Canvas.Handle, ColorToRGB(clRed));
DrawGrid1.Canvas.FillRect(Rect);    

我仍然不知道为什么,但它正在工作。