你可以在DBGridEh的OnDrawColumn事件里自己写重绘代码: var Drect:TRect; begin if Column.FieldName='字段名' then begin Drect := rect; DrawText(dbgrideh1.Canvas.Handle,pchar(Column.Field.AsString),length (Column.Field.AsString),rect,DT_WORDBREAK) //dt_wordbreak是换行标记 end; end;
Delphi里,我一直没有找到
我用过的第三方控件中,TdxDBGrid可以做到这样的效果
var
Drect:TRect;
begin
if Column.FieldName='字段名' then
begin
Drect := rect;
DrawText(dbgrideh1.Canvas.Handle,pchar(Column.Field.AsString),length (Column.Field.AsString),rect,DT_WORDBREAK)
//dt_wordbreak是换行标记
end;
end;
DrawText(dbgrideh1.Canvas.Handle,pchar(Column.Field.AsString),length (Column.Field.AsString),rect,DT_WORDBREAK)
请改成:
DrawText(dbgrideh1.Canvas.Handle,pchar(Column.Field.AsString),length (Column.Field.AsString),Drect,DT_WORDBREAK)
可是行高不变,折行后第二行只显示上半个字,这怎么办?
这种方式的话如何控制行高(因为不知道到底要多高)?