当前位置: 代码迷 >> VFP >> grid 当前记录行 反色显示 总弄不成?解决方法
  详细解决方案

grid 当前记录行 反色显示 总弄不成?解决方法

热度:9203   发布时间:2013-02-26 00:00:00.0
grid 当前记录行 反色显示 总弄不成?!
我通过 seek 查找一个表 如果命中 则反色显示当前记录 

我再 grid1 的 AFTERROWCOLCHANGE事件里如下写
SQL code
LPARAMETERS nColIndexCURREC=RECN()this.setall("dynamicbackcolor","iif(recn()=CURREC,rgb(255,255,0),rgb(255,255,255))","column")   &&使当前记录变颜色*this.grid1.setfocus

提示 : 表达式无效 请使用有效表达式设置 dynamicbackcolor属性

SQL code
在AFTERROWCOLCHANGE事件中写入下面代码:this.setall("dynamicbackcolor","iif(this.activerow=recno,rgb(127,0,127),rgb(255,255,255))","column")this.setall("dynamicforecolor","iif(this.activerow=recno,rgb(255,255,255),rgb(0,0,0))","column")


这个则没有反色效果

------解决方案--------------------------------------------------------
如果是VFP7以上:

修改Grid的HighlightStyle、HighlightBackColor和HighlightForeColor值即可。
HighlightStyle设为2
HighlightBackColor设为“182,202,234”或你自定义一个喜欢的颜色 &&"0,128,255"
HighlightForeColor设为“0,0,0”或你自定义一个喜欢的颜色 &&"255,255,255"

------解决方案--------------------------------------------------------
如果是VFP6:

在 Grid 的 AfterRowColChange 事件中,写入如下代码

Lparameters nColIndex && 系统代码
Select (This.RecordSource)
lcCurrRec=Transform(Recno()) && 获取当前所在记录号(行)
This.SetAll("DynamicBackColor",'Iif(Recno()=&lcCurrRec.,Rgb(0,128,255),Rgb(255,255,255))',"Column") && 设置当前行背景色,满足条件为蓝色,不满足为白色
This.Refresh && 这个刷新必须要,不然不满足条件的记录所显示的高亮显示就不会退去
------解决方案--------------------------------------------------------
问题出在:

rgb(255,255,0)必须用引号括起来,注意引号的嵌套

this.setall("dynamicbackcolor","iif(recn()=CURREC,'rgb(255,255,0)','rgb(255,255,255)')","column")




另外:动态背景色应当在INIT事件中设置或者直接设置在表格的列中
  相关解决方案