如何获取dw中dddw上下键焦点问题

gaoko 2009-10-28 07:14:03
目前dw_1中 有一个xxly列关联dddw_xxly,当回车键到xxly列的时候 按一下 ↓ 键 焦点就转移到下一列 如法选择下拉数据
如何能在该xxly列获得焦点 并通过↑ ↓键输入正确数据后 按enter才失去焦点?

ue_key代码如下(pbm_dwnprocessenter):
if keydown(keyenter!) then
Send(Handle(this),256,9,Long(0,0)) //发送TAB键
Return 1 //取消原ENTER键的动作
end if

请问 pbm_command 中代码如何写(我写的这个有问题)?
DataWindowChild ldw_my
String ls_object,ls_temp
Long ll_dddw,ll_event//ll_dddw指明操作的子数据窗口,ll_event指明触发的事件
ll_dddw = Message.LongParm//由LongParm获得操作的子数据窗口
ll_event = Message.WordParm//由WordParm获得触发的事件ID
GetChild( "xxly", ldw_my )//获得指定列的子数据窗口
if intlow(ll_dddw) = handle(ldw_my) then
if IntHigh(ll_event) = 1281 then//1281为鼠标单击事件ID
ls_object = ldw_my.GetObjectAtPointer()
ls_temp = ls_object
Choose case ls_temp
End choose
End if
End if
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoko 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xys_777 的回复:]
试试别的方式呢,焦点到达下拉列时,使下拉数据窗口显示(即设上always show list),再选择之后把always show list关掉

不知道能不能解决一些问题,你的这个截获windows消息的不太好做
[/Quote]


我的asways show list 就是处于选中状态 当焦点来的时候 就展现出来了 可是我按一下↓ 或者↑键 show就关闭了 而且焦点就没了
gaoko 2009-10-29
  • 打赏
  • 举报
回复
回复2楼:

我的代码没有关于 pbm_keydown 和pbm_keyup的事件 只有pbm_dwnprocessenter和 command

我也是总感觉问题出现在↑(keydown) 和↓(keyup)的问题上了,因为我按↑和↓键的时候,程序当成我按了回车键 直接给我切换了焦点 ,但是程序里没有啊

楼上帮帮忙 看怎么处理好啊
WorldMobile 2009-10-29
  • 打赏
  • 举报
回复
把你的pb_command里的代码去掉

如果你的ue_key事件的消息号为:pbm_dwnprocessenter

查看数据窗口的自定义事件中有没有消息号为pbm_keydown或者pbm_keyup的事件

如果有,代码肯定出在那个里面

gaoko 2009-10-29
  • 打赏
  • 举报
回复
问题以解决 唉 白干了几年软件开发了 我就是大傻帽 结贴 给分 谢谢各位了
永生天地 2009-10-28
  • 打赏
  • 举报
回复
试试别的方式呢,焦点到达下拉列时,使下拉数据窗口显示(即设上always show list),再选择之后把always show list关掉

不知道能不能解决一些问题,你的这个截获windows消息的不太好做

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧