导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

如何实现下拉数据窗口中的选择蓝条随光标的移动面移动

poemlake 2003-12-10 09:44:25
如何实现下拉数据窗口中的选择蓝条随光标的移动而移动,而不是选中蓝条停在某行记录上不动,当点鼠标后才移动到某行。
...全文
75 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tse126 2003-12-11
//在dw中自定義事件ue_mess,事件ID:pbm_command
//寫如下代碼

DataWindowChild Ldw_Column,Ldw_Child
String Ls_Column,Ls_Name,Ls_Pointer
Long m,Ll_Row
//得到有下拉數據窗口列的子數據窗口名
FOR m = 1 TO long(this.object.datawindow.column.count)
Ls_Column = this.describe("#" + String(m) + ".name")
IF this.getchild(Ls_Column,Ldw_Column) = 1 then
Ls_Name = Ls_Column
this.getchild(Ls_Name,Ldw_Child)
IF hwndchild = handle(Ldw_Child) THEN
//2311是在dddw中mousemove(用戶移動鼠標)的資訊
IF notificationcode = 2311 THEN
//得到鼠標所在的行的名稱及行號
Ls_Pointer = Ldw_Child.getobjectatpointer()
Ll_Row = long(mid(Ls_Pointer,pos(Ls_Pointer,"~t") + 1))
//移動到鼠標所在的行
IF Ldw_Child.getrow() <> Ll_Row AND Ll_Row > 0 THEN
Ldw_Child.scrolltorow(Ll_Row)
END IF
END IF
END IF
ELSE
RETURN
END IF
NEXT

RETURN 1
回复
chrisfy 2003-12-11
下拉数据窗口还不是一样,只是处理对象不同:子数据窗口.selectrow(row,true)
回复
hdvcd 2003-12-11
学习
回复
poemlake 2003-12-11
谢谢楼上这位兄弟的代码,楼上是高人啊,可能我的数据窗口的第一列是计算列,所以楼上的代码刚开始不好使,我把for循环去掉了,直接让M=4(包含下拉数据窗口的列号)结果就好使了,非常好用,多谢各位了
回复
bunnysky 2003-12-11
帮你UP!!
回复
poemlake 2003-12-10
写什么代码,我以前看过一个这样的例子,没在意,现在要用了,却找不到代码,也不知道怎么实现的
回复
thelazyman 2003-12-10
在数据窗口自定义事件Event id为pbm_mousemove中写代码即可!!
回复
poemlake 2003-12-10
鼠标,一楼的代码是在数据窗口里,我要的是下拉数据窗口的选择蓝条随鼠标动,不是数据窗口
回复
lmby 2003-12-10
光标 是指鼠标?那就在mousemove里做
回复
zc1966 2003-12-10
定义数据窗口mousemove事件
其代码如下:
string ls_object
ls_object = trim(getObjectAtPointer ( ))
int pos1,row,old_row
pos1 =pos(ls_object,'~t',1)
if pos1 =0 then return
row = integer(lower(right(ls_object,len(ls_object) - pos1 )))
if row=old_row then return

this.selectrow(0,false)
this.selectrow(row,true)
old_row=row
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

813

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告