关于数据录入的几个问题!!!!!!!!!!!!!

moyan1203 2003-09-27 07:59:07
我有两个小问题需要解决,由于我做的报表很长,所以输入的时候一般做成用回车切换(我用的方法是:自定义一个事件,事件列号为pbm_dwnprocessenter,程序语句为:
int i
i = dw_1.getclolum()
dw_1.setcolumn(i + 1)
可是在有下列的情况下,会引起错位,即行号改变,而不是按行逐列递变。该怎么解决,另外我希望数据窗口的横竖滚动条都可以随着输入自动滚动,怎么做呢?
还有就是如果在数据窗口中应用方向键选择输入,除了自定义上,下,左,右四个事件外,还有没有更简洁,有效的办法?
请各位大虾指教,谢谢
...全文
88 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamfly2008 2003-09-28
  • 打赏
  • 举报
回复
send(handle(this), 256, 9, 0)
xyzliuin 2003-09-28
  • 打赏
  • 举报
回复
利用左右键及回车键来转移列的焦点

定义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

szpqq 2003-09-28
  • 打赏
  • 举报
回复
滚动到最新一行
dw_1.scrolltorow(0)
地狱余烬 2003-09-28
  • 打赏
  • 举报
回复
自定义事件 pbm_dwnprocessenter

send(handle(this),256,9,long(0,0))
moyan1203 2003-09-28
  • 打赏
  • 举报
回复
继续关注,急切等待中。。。
mittee 2003-09-27
  • 打赏
  • 举报
回复
对于你的第一个问题可以这样
send(handle(this),256,9,long(0,0)) //用enter 代替tab
return 1

1,108

社区成员

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

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