我正在尝试为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;
在事件中放置断点后,我注意到它从未执行过
最佳答案
使用OnDrawColumnCell
事件处理程序而非过时的OnDrawDataCell
解决
正如documentation所说:
不要编写OnDrawDataCell事件处理程序。现“ OnDrawDataCell”为
已过时且包含在内,以实现向后兼容。而是写一个
OnDrawColumnCell事件处理程序。