问:我想做一个象excel那样能当鼠标点一下那列时,标题的边框由3D raise改为 3D lower,请问怎么实现?
答:
1、首先定义Instance变量用于保存上次的点击对象,这样便可以恢复样式。
string is_objectname
2、在数据窗口中利用GetObjectAtPointer函数得到当前用户点击的对象,然后改变相应的样式,具体代码如下:
//数据窗口Clicked事件
String dwobjectname
//得到当前点击的对象
dwobjectname = this.GetObjectAtPointer()
//恢复上次点击对象的样式
if not isnull(is_objectname) and trim(is_objectname) <> "" then
dw_1.modify(is_objectname + ".border = 6")
end if
long ll_pos
//分别读取对象名称与行数
ll_pos = pos(dwobjectname,'~t')
is_objectname = left(dwobjectname,ll_pos - 1)
//如果用户点击文本,则返回。
if right(is_objectname,2) = "_t" then return
string ls_row
ls_row = right(dwobjectname,len(dwobjectname) - ll_pos)
//修改点击对象当前行的样式
dw_1.modify(is_objectname + ".border = '6~tIf(getrow()=" + ls_row + ",5,6)'")
本方法可以应用到别的风格设计上,如果用户使用别的方式切换焦点时,还必须在相应的实践中编程。
摆渡人工作室有例子下载 http://www.pbsite.com
此题由摆渡人工作室站长ferryman回答