这是个经典的问题,在我看来,如果一个数据库应用程序做不到这一点,那也太不人性化了,充其量是能是个练习版。不过实现这个功能后,却为给以后的许多地方造成一定的影响,这以后再谈到。先谈这个,实际很简单。
1.先建一个standrad visual,选择datawindow
2.新建一个事件命名为u_enter,其对应的event id为pbm_dwnprocessenter,编下如下的代码:
if this.getcolumn()=Long(this.object.datawindow.Column.count) then //如果是最后一列
if this.getrow()=this.Rowcount() then //并且是在最后一行
this.insertrow(0) //则增加新行
this.scrolltorow(this.getrow()+1) //并且使之成为当前行
this.Setcolumn(1) //并将第一列设置为当前列
return 1 //然后返回
end if
end if
send(Handle(this),256,9,long(0,0)) //发送处理Tab键的消息
return 1 //忽略回车键的处理
3.保存后即完毕需要这类数据窗口的地方,只要插入user object control,选择此数据窗口对象即可。
需高手解决的问题:
1.关于pbm_dwnprocessenter事件的具体含义,不是很懂。
2.return 1,这个语句的具体含义不是很清晰,只感觉pbm_dwnprocessenter要求返回值,当为1时,就屛蔽当前按键原有功能(事件)。尽管不是很懂,但在后来的程序中却用到了,很管用。
posted on 2007-07-17 22:00
wlj768 阅读(1082)
评论(0) 编辑 收藏 引用 所属分类:
数据库编程之PB学习