如何使用左右箭头键实现数据窗口中列与列之间的跳转

swazyl 2003-11-25 08:42:46
请教各位高手,如何使用左右箭头键实现数据窗口中列与列之间的跳转
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwafa9 2003-11-26
  • 打赏
  • 举报
回复
在Declare Global External Functions画板定义的,你从来没有用过吗?
你肯定定义过实例变量,就和它在一个下拉列表里面,你去看一下就知道了。
祝你好运!
swazyl 2003-11-26
  • 打赏
  • 举报
回复
在哪里定义API函数keybd_event()
swazyl 2003-11-25
  • 打赏
  • 举报
回复
fulongbiao(一个人的精彩)的方法好象不太具体,我不知道怎么实现
fulongbiao 2003-11-25
  • 打赏
  • 举报
回复
if key=key??! then
send(handle(this),256,9,0)
end if
wwwafa9 2003-11-25
  • 打赏
  • 举报
回复
如何利用左右键及回车键来转移列的焦点

这要用到Windows中的API函数keybd_event()

①定义API:
Subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library "user32.dll"

②自定义一用户事件(ue_keydown ID:pbm_dwnkey):
integer VK_TAB = 09
integer VK_SHIFT = 16

if key = KeyLeftArrow! then
keybd_event(VK_SHIFT,0,0,0) //按下shift
keybd_event(VK_TAB,0,0,0) //按下tab
keybd_event(VK_TAB,0,2,0) //释放tab
keybd_event(VK_SHIFT,0,2,0) //释放shift
return 1
end if
if key = KeyRightArrow! or key=KeyEnter! then
keybd_event(VK_TAB,0,0,0) //按下tab
keybd_event(VK_TAB,0,2,0) //释放tab
return 1
end if

如若只是想利用ENTER键来实现TAB键的功能可以用以下代码:
if key=keyenter! then
Send(Handle(this),256,9,Long(0,0)) //发送TAB键
  Return 1 //取消原ENTER键的动作
end if

[注]keybd_event()函数

说明: 这个函数模拟了键盘行动。
参数 类型及说明
bVk 欲模拟的虚拟键码。
bScan 键的OEM扫描码。
dwFlags Long,零;或设为下述两个标志之一
&H1 指出是一个扩展键,而且在前面冠以0xE0代码。
&H2 模拟松开一个键。
dwExtraInfo Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序。

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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