我通过 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事件中设置或者直接设置在表格的列中