cxgrid中怎么加入行号?怎么固定行号?的两种方法 ( 积分: 100 )

  • 主题发起人 主题发起人 lsflsf
  • 开始时间 开始时间
L

lsflsf

Unregistered / Unconfirmed
GUEST, unregistred user!
1、选中cxGrid1TableView1, 再在Object Indicator中自动生成
CustomDrawIndicatorCell事件代码:
procedure TMain_Form.cxGrid1DBTableView1CustomDrawIndicatorCell(
Sender: TcxGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
begin
//加入行号,占用了 indicator列,样子不是很好看,但能实现
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1);
//ACanvas.DrawComplexFrame(FBounds, clBlack, clBlack, [bBottom, bLeft, bRight], 1);
FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1);
InflateRect(FBounds, -1, -1) ; //Platform specific. May not work on Linux.
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
2、 40cxGrid1TableView1->OptionsView-> Inspector设为True
第一种方法是可行的,但是占用了Indicator,我想保留Indicator的三角
第二种方法我找不到OptionsView-> Inspector属性,请高手们指条明路
 
后退
顶部