按回车移动焦点

wlings 2002-10-22 12:48:36
我想在数据窗口的用户事件中编写代码控制焦点的移动,击回车时焦点按tab order的大小顺序移动,当焦点移到最后一列后再移到下一行的开头,应该怎样写代码?
...全文
89 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
szpqq 2002-10-23
  • 打赏
  • 举报
回复
自定义用户事件 pbm_dwnkey
if key=keyenter! then
if getcolumnname() = 'c_lastest_col' then
setcolumn(c_first_col)
return 1
end if
send(handle(this),256,9,0)
end if

JIANXIN_LU 2002-10-23
  • 打赏
  • 举报
回复
用事件pbm_dwnkey,然后在这个事件中写如下代码即可(已测试):
IF Key = KeyEnter! THEN
Dw_1.SetColumn( Dw_1.GetColumn( ) + 1 )
END IF
licena 2002-10-23
  • 打赏
  • 举报
回复
hehe!
:)
pufan 2002-10-22
  • 打赏
  • 举报
回复
自定义用户事件 pbm_dwnkey
if key=keyenter! then
send(handle(this),256,9,0) //发送一个tab键消息
end if
ice2water 2002-10-22
  • 打赏
  • 举报
回复
首选在DW控件上定义用户自定义事件,如tab_enter,选择事件标识为pdm_dwnprocessenter,其具体的代码如下:
if this.accepttext()<0 then
return(1)
end if
if this.getcolumn()=long(this.object.datawindow.column.count) then
if this.getrow()=this.rowcount() then
this.insertrow(0)
this.scrolltorow(this.getrows()+1)
this.setcolumn(1)
return(1)
end if
end if
send(Handle(this),256,9,long(0,0))
return 1

返回1表示程序已经处理了本次操作,不需要操作系统的干预,否则系统会在ENTER转换成TAB之后再次执行ENTER的功能,导致跳转错误。
licena 2002-10-22
  • 打赏
  • 举报
回复
pbm_dwnkey不行的,应
自定义数据窗口用户事件 pbm_dwnprocessenter

send(handle(this),256,9,0) //发送一个tab键消息
return 1
ice2water 2002-10-22
  • 打赏
  • 举报
回复
我在一本书上刚刚看到过,不过书在家里,如果到晚上还没有解决,我来发贴。
pufan 2002-10-22
  • 打赏
  • 举报
回复
你按tab键看看是怎么移动的.
hd506lg 2002-10-22
  • 打赏
  • 举报
回复
用setcolumn()
wlings 2002-10-22
  • 打赏
  • 举报
回复
这个我也试过了,不过是横着移,是斜写着往下移的,很奇怪。

610

社区成员

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

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