为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

cxGrid添加表格选中边框

2017-06-03 3页 doc 6KB 52阅读

用户头像

is_648706

暂无简介

举报
cxGrid添加表格选中边框cxGrid添加表格选中边框 针对cxGrid表格控件不存在选中框(Cell)添加加粗边框功能, 因此对cxGrid表格TcxGridTableView中属性 OnCustomDrawCell进行相应代码编写, 以对选中框重新绘制, 实现该功能。 1.代码添加前小知识 首先看一下OnCustomDrawCell中的属性信息 OnCustomDrawCell ( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellV...
cxGrid添加表格选中边框
cxGrid添加表格选中边框 针对cxGrid表格控件不存在选中框(Cell)添加加粗边框功能, 因此对cxGrid表格TcxGridTableView中属性 OnCustomDrawCell进行相应代码编写, 以对选中框重新绘制, 实现该功能。 1.代码添加前小知识 首先看一下OnCustomDrawCell中的属性信息 OnCustomDrawCell ( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); 添加边框代码需要运用 ACanvas(Dev 自身画布), AViewInfo(利用该类可获得Cell信息, 比如Cell的范围Rect, 或者Cell的值 Value……), ADone这个值也有其特殊含义,在下面代码添加的时候描述。 2.代码描述(OnCustomDrawCell 事件中描述) var aRect: TRect; begin {以下代码用来去除cxGrid表格中自身选中行Focus虚线,该代码不添加会影响添加边框的显示效果} if AViewInfo.GridView.OptionsView.FocusRect then AViewInfo.GridView.OptionsView.FocusRect := False; {此处介绍一下ADone属性, DEV Cell 进行绘制的时候,首先会判断已经存在自定义的 绘制代码,即OnCustomDrawCell中是否已经存在事件, 如果存在,那么会先执行自定义代码, 执行完 自定义代码后,DEV 会根据 ADone值, 如果该值为False, 会进行DEV内部表格绘制, 也就是说执行DEV的代码,绘制表格信息, 如果为True, DEV不再执行内部代码,也就是说界面上显示的为用户自定义的代码。此处我们将ADone 设置为True,如果此处不为True,意味着CELL自定义绘制信息,可能会被DEV之后的执行代码清空, 为什么要说可能会被清空:因为在DEV之后重新绘制的时候,对背景色的绘制采用用户定义信息, 这就是为什么斑马色等能够成功设置的原因} ADone := True; {one := True 说明将采用用户自定义绘制代码, 那就需要首先针对表格内信息进行重新绘制,绘制完成后,加上相应的边框, 一下代码就是调用DEV内部代码, 对CELL进行绘制} AViewInfo.EditViewInfo.Paint(ACanvas); {下面代码应该比较易懂了, 绘制边框, 也就是绘制4条边框线, 不要使用绘制矩形, 因为绘制矩形, 会使得内部显示信息也要重新绘制, 代码量复杂而且不实用, 绘制成功后,将Pen宽度充置为1,否则会显示出问} aRect := AViewInfo.EditBounds; if AViewInfo.GridView.Controller.FocusedItem <> nil then begin if (AViewInfo.Item = AViewInfo.GridView.Controller.FocusedItem) and (AViewInfo.GridRecord.Index = AViewInfo.GridView.DataController.FocusedRowIndex) then begin ACanvas.Pen.Width := 2; ACanvas.Pen.Color := clBlack; ACanvas.MoveTo(aRect.Left, aRect.Top); ACanvas.LineTo(aRect.Right, aRect.Top); ACanvas.MoveTo(aRect.Left, aRect.Top); ACanvas.LineTo(aRect.Left, aRect.Bottom); ACanvas.MoveTo(aRect.Right, aRect.Top); ACanvas.LineTo(aRect.Right, aRect.Bottom); ACanvas.MoveTo(aRect.Left, aRect.Bottom); ACanvas.LineTo(aRect.Right, aRect.Bottom); ACanvas.Pen.Width := 1; end; end end; 3.具体修改 在原有的OnCustomDrawCell后添加 SetGridViewSelectRange(ACanvas, AViewInfo, ADone); SetGridViewSelectRange代码已经被封装在USystemControlInterface中, 代码内容也就是 以上所描述的
/
本文档为【cxGrid添加表格选中边框】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索