一个救命的问题,如何在数据窗口中从当前列按回车后转移到另一列上去

hn_ly 2002-03-09 03:07:39
假设有一个数据窗口如下:
编号 姓名 性别 年龄
1 张三 男 20
2 李四 男 30
3 王五 男 40
4 小梁 男 10

当前光标在第一行"编号"列,我现在想从编号列移到"姓名"列编辑姓名,然后又要从"姓名"列移到"年龄"列编辑年龄.

问题:

我发现只有最后一行才能实现上述功能,而其他行按回车然老是切换到下一行,不是列


请多多指教!!!!!!!
...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nana11 2002-03-11
  • 打赏
  • 举报
回复
hoyu(心茗) 的方法挺好用的,但是在使用之前最好设置一下各字段的taborder,否则,就哈哈,不太好使了。
Freeman75 2002-03-09
  • 打赏
  • 举报
回复
不会吧,我都用了好多次了,没发现老兄说的问题呀
liangzw52 2002-03-09
  • 打赏
  • 举报
回复
以上方法不行,还有更经典的吗?求教各位高手
如果是在最后一行,以上方法还可以,但在的一行就不行了
llitcwl 2002-03-09
  • 打赏
  • 举报
回复
简单的做法:
设置好TAB值
定义一个事件,ID选pbm_dwnporcessenter
加上一行代码:
send(handle(this),256,9,0)
531MT 2002-03-09
  • 打赏
  • 举报
回复
一、enter实现tab:
1、在DW中:
在数据窗口声明用户事件UE_PROCESSENTER,事件ID:pbm_dwnprocessenter。
脚本例子:
if this.accepttext()=1 then
send(handle(this),256,9,long(0,0))
end if
return 1
2、控件中:
在数据窗口声明用户事件UE_enter,事件ID:pbm_keydown。
脚本例子:
if keydown(keyenter!) then
cb_1.setfocus()
end if
3、窗口中:
窗口的key事件中:
脚本例子:
声明:SUBROUTINE keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo) library "user32.dll"
If key = KeyEnter! Or Key = KeyDownArrow! Then
keybd_event ( 9, 0, 0 , 0 ) // 按下tab
keybd_event ( 9, 0, 2, 0 ) // 释放tab
Return 1
End If

二、Arrow键实现tab和shift_tab的功能:
1、在DW中:
在数据窗口声明用户事件UE_arror,事件ID:pbm_dwnkey。
脚本例子:
声明:SUBROUTINE keybd_event(int bVk,int bScan,int dwFlags,int dwExtraInfo) library "user32.dll"
Choose Case key
Case Keyrightarrow! //right key 取代 tab key
if this.position()=len(gettext()) + 1 then
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
end if
Case Keyleftarrow! //left key 取代 shift_tab
if this.position()=1 then
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
end if
End Choose
blue_butterfly 2002-03-09
  • 打赏
  • 举报
回复
用的什么语句呀?
试试 dw.setcolumn(列名)

401

社区成员

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

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