把cxGridView里OptionsView选项中的两项修改成如下
OptionsView.Indicator = True
OptionsView.IndicatorWidth = 40//宽度
在customDrawIndicatorCell事件中填写
procedure TForm1.cxGrid1BandedTableView1CustomDrawIndicatorCell(
Sender: TcxGridTableViewACanvas: TcxCanvas
AViewInfo: TcxCustomGridIndicatorItemViewInfovar ADone: Boolean)
var
AIndicatorViewInfo: TcxGridIndicatorRowItemViewInfo
ATextRect: TRect
// AStyle: TcxStyle
aCV:TcxCanvas
begin
if not (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
Exit
aCV:=ACanvas
ATextRect := AViewInfo.ContentBounds
AIndicatorViewInfo := AViewInfo as TcxGridIndicatorRowItemViewInfo
InflateRect(ATextRect, -2, -1)
if AIndicatorViewInfo.GridRecord.Selected then //这个if段是为了在行号处把把选中的行号跟别的区分开,可不用
begin
aCV.Font.Style := Canvas.Font.Style + [fsBold]
aCV.Font.Color := clRed
end
else
begin
aCV.Font.Style := Canvas.Font.Style - [fsBold]
acv.Font.Color := Canvas.Font.Color
end
Sender.LookAndFeelPainter.DrawHeader(ACanvas, AViewInfo.ContentBounds,
ATextRect, [], cxBordersAll, cxbsNormal, taCenter, vaCenter,
False, False, IntToStr(AIndicatorViewInfo.GridRecord.Index + 1),
//AStyle.Font, AStyle.TextColor, AStyle.Color)
acv.Font,acv.font.Color,acv.Brush.color )
ADone := True
end
两种方法,一种是使用计算字段。根据自己的规则,用RecNo来定义行号二种是使用组件的特殊功能,如cxgrid中,可以随意添加一列,在OngetDisplayText句柄中根据RecordIndex来获取行号。怎么用看楼主喜好了
双击“cxgrid”后,d出界面;右半部的窗口有个“Sunmmary”标签项,点击“Add”,会添加一行TxcGridDBTableSunmmaryItem项,在左边的属性栏中找到“Column”选择要进行合计的字段。再找到“Kind”的属性,选择Sum/Max/Min/average你想要的合计类型。Format属性是格式化你合计后显示的结果例如0.000 就是保留3位小数。另外双击“cxgrid”后,再属性栏中找到“optionview”属性,里面有个“Foot”选项设置为True欢迎分享,转载请注明来源:内存溢出
评论列表(0条)