【Delphi Stringgrid 设置表格文字居中后有重影,去除重影方法】

时间:2024-03-13 11:40:52

未设置前效果,没有居中

【Delphi Stringgrid 设置表格文字居中后有重影,去除重影方法】

居中代码

procedure TForm1.Stringgrid1DrawCell(Sender: TObject;
  ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringGrid do
  begin
    Canvas.FillRect(Rect);
    DrawText(Canvas.Handle, Pchar(Cells[ACol, ARow]),
      Length(Cells[ACol, ARow]), Rect,
      DT_CENTER or DT_SINGLELINE or DT_VCENTER);
  end;
end;

加了居中代码后效果:

【Delphi Stringgrid 设置表格文字居中后有重影,去除重影方法】

原来的字,和居中的字都会显示出来,这就尴尬了,说明有重影,设置一下

stringgrid1.deaultdrawing := False;

设置后效果效果:

【Delphi Stringgrid 设置表格文字居中后有重影,去除重影方法】

完美收工!