开发环境:PB11.5 Build 3127
我是想实现这样的效果,当前选中行的颜色为红色,非选中行为白色。在Grid风格的数据窗口对象的Detail域背景色表达式中写如下代码:IF( GetRow() = CurrentRow(), RGB(255, 0, 0), RGB(255, 255, 255) )
OK,效果是实现了,鼠标单击一起正常,但是调用dw.SetRow(ll_RowNum)设置当前行后,数据窗口中的焦点并没有切换到ll_RowNum这一行上,但是调用dw.GetRow()后返回值又确实是ll_RowNum。调用一下dw.SetRedraw(True)或者MessageBox(...)之类的,行焦点就马上切换到ll_RowNum上了。但是这时在数据窗口中按上下方向键也没有反应,即使调用了dw.SetRedraw(True)。
不知道这是不是DW的一个BUG,有遇到类似情况的朋友说说你们是怎么解决的。
Detail背景 行焦点
------解决方案--------------------
也请你看一下currentrow的帮助。
------解决方案--------------------
把你的完整代码贴出来。
IF(GetRow() = CurrentRow(), RGB(255, 0, 0), RGB(255, 255, 255)) 肯定没问题,11.5的各个小版本我都用过。
但是以下情况例外:所有的列的protect都设为1,或者taborder都设为0,setrow之后颜色不会变,鼠标随便点哪一下才会变,但是getrow返回行号是正确的。