如何使用TDBGrid绘制一个空单元格?

时间:2017-02-27 14:18:39

标签: delphi tdbgrid

我尝试显示TDBGrid单元格的空文本而不更改字段的值,也不会更改单元格的背景颜色。 我不确定这是正确的做法,但我已尝试使用OnDrawDataCell事件,如下所示:

procedure TMyForm.MyGridDrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
var
    Grid : TDBGrid;
begin
  inherited;
  if(Field.FieldName = 'MYFIELD') then
  begin
    Grid := Sender as TDBGrid;
    Grid.Canvas.FillRect(Rect);
  end;
end;

在事件中放置断点后,我发现它从未执行过

1 个答案:

答案 0 :(得分:1)

使用OnDrawColumnCell事件处理程序而不是过时的OnDrawDataCell

解决了问题

正如documentation所说:

  

不要编写OnDrawDataCell事件处理程序。 OnDrawDataCell是   过时兼容,以便向后兼容。相反,写一个   OnDrawColumnCell事件处理程序。