O
ourtibet
Unregistered / Unconfirmed
GUEST, unregistred user!
cxgrid如果要实现固定列,必须定义band来实现,不像dbgrideh那么简单,在cxgrid v4.5中显示效果也不好,通过研究源代码发现 在cxgridtableview.pas中给TcxGridTableViewInfo定义一个FixedLeft属性,同时修改一下代码:function TcxGridTableViewInfo.GetScrollableAreaBoundsHorz: TRect;begin Result := inherited GetScrollableAreaBoundsHorz; Dec(Result.Top, HeaderViewInfo.Height); Inc(Result.Bottom, FooterViewInfo.Height); //add by me if FFixedLeft>0 then Result.Left:=FFixedLeft;end;如果想要第一列固定,这么设置属性:GridView.ViewInfo.FixedLeft:=GridView.Columns[0].Width 即可达到固定列的效果只是有一个问题,当前选中行在滚动后位置会串位,应该是当前行滚动后需要加一个间距,但是暂时没有解决,哪位大虾对这个熟一些,往给予指导,给大家提供一种新的思路。