Delphi:如何使 TStringGrid 中的单元格文本居中对齐?
当我使用顶部代码(OnDraw 部分)时,它不会删除第一个文本并将新文本写在旧文本上,一个 sel 会重复 .
Delphi:如何使 TStringGrid 中的单元格文本居中对齐?
当我使用顶部代码(OnDraw 部分)时,它不会删除第一个文本并将新文本写在旧文本上,一个 sel 会重复 .
TCanvas.FillRect
在写出新文本之前,您需要添加一个调用:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: String;
begin
S := StringGrid1.Cells[ACol, ARow];
StringGrid1.Canvas.FillRect(Rect);
SetTextAlign(StringGrid1.Canvas.Handle, TA_CENTER);
StringGrid1.Canvas.TextRect(Rect,
Rect.Left + (Rect.Right - Rect.Left) div 2, Rect.Top + 2, S);
end;
请注意,您还必须确保将TStringGrid.DefaultDrawing
设置为False
才能使其正常工作。