如何使用 TDBGrid 绘制一个空单元格?
How to draw an empty cell using 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;
在事件中放置断点后,我注意到它从未执行过
已使用 OnDrawColumnCell
事件处理程序而不是过时的 OnDrawDataCell
解决
正如documentation所说:
Do not write an OnDrawDataCell event handler. OnDrawDataCell is
obsolete and included for backward compatibility. Instead, write an
OnDrawColumnCell event handler.
我正在尝试为 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所说:
Do not write an OnDrawDataCell event handler. OnDrawDataCell is obsolete and included for backward compatibility. Instead, write an OnDrawColumnCell event handler.