我有以下代码(分配给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,它也始终绘制黑色背景。我也尝试改变笔和字体属性,没有运气。 我在这里想念的是什么?
ps:我已检查过此代码:Diagonal brush style gives me black area。 我没有看到问题和答案之间的区别(除了注释行)和那些不适合我的代码,正如我所提到的,我已经尝试更改Pen属性而没有任何结果。 我想要的只是天蓝色对角线的红色背景。
答案 0 :(得分:1)
解决了,必须在FillRect:
之前添加SetBKColor()DrawGrid1.Canvas.Brush.Style:= bsFDiagonal;
DrawGrid1.Canvas.Brush.Color:= clSkyBlue;
SetBkColor(DrawGrid1.Canvas.Handle, ColorToRGB(clRed));
DrawGrid1.Canvas.FillRect(Rect);
我仍然不知道为什么,但它正在发挥作用。