8 个解决方案
#1
参考向导生成的表单,代码在:
在vfp安装目录下wizards下的wizbtns.vcx中txtbtns
在vfp安装目录下wizards下的wizbtns.vcx中txtbtns
#2
上一条:
skip -1
this.enabled=recn()>1
下一条:
skip
this.enabled=recn()<recc()
skip -1
this.enabled=recn()>1
下一条:
skip
this.enabled=recn()<recc()
#3
上一条
if not BOF()
skip-1
endif
if BOF()
this.enabled=.F.
endif
下一条
if not eof()
skip
endif
if eof()
this.enabled=.F.
endif
if not BOF()
skip-1
endif
if BOF()
this.enabled=.F.
endif
下一条
if not eof()
skip
endif
if eof()
this.enabled=.F.
endif
#4
在vizstyle.vcx类库中查看txtbtns类,有完整的代码.
#5
dfwxj(清风) 写的比较简洁
#6
补充:
我上面写的代码需要进行初始化,要不然可能会出错
初始化代码:
thisform.cmdpre.enabled=.f. &&刚打开表时记录指针肯定在第一条或表首,此时不需要操作上一条
thisform.cmdnext.enabled=recc()>1 &&只有超过一条记录时才有操作下一条的必要
我上面写的代码需要进行初始化,要不然可能会出错
初始化代码:
thisform.cmdpre.enabled=.f. &&刚打开表时记录指针肯定在第一条或表首,此时不需要操作上一条
thisform.cmdnext.enabled=recc()>1 &&只有超过一条记录时才有操作下一条的必要
#7
就这么简单
#8
实现在一个表单中FROM的KEYPREE属性代码(比如是键盘的PAGE UP 及 PAGE DOWN键)
LPARAMETERS nKeyCode, nShiftAltCtrl
do case
case nKeyCode = 18
skip -1
if bof()
go top
wait '第一个记录' window nowait
* messagebox("这已经是第一条记录!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
case nKeyCode = 3
skip
if eof()
go bottom
wait '最后记录' window nowait
* messagebox("这已经是最后一条记录了!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
endcase
LPARAMETERS nKeyCode, nShiftAltCtrl
do case
case nKeyCode = 18
skip -1
if bof()
go top
wait '第一个记录' window nowait
* messagebox("这已经是第一条记录!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
case nKeyCode = 3
skip
if eof()
go bottom
wait '最后记录' window nowait
* messagebox("这已经是最后一条记录了!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
endcase
#1
参考向导生成的表单,代码在:
在vfp安装目录下wizards下的wizbtns.vcx中txtbtns
在vfp安装目录下wizards下的wizbtns.vcx中txtbtns
#2
上一条:
skip -1
this.enabled=recn()>1
下一条:
skip
this.enabled=recn()<recc()
skip -1
this.enabled=recn()>1
下一条:
skip
this.enabled=recn()<recc()
#3
上一条
if not BOF()
skip-1
endif
if BOF()
this.enabled=.F.
endif
下一条
if not eof()
skip
endif
if eof()
this.enabled=.F.
endif
if not BOF()
skip-1
endif
if BOF()
this.enabled=.F.
endif
下一条
if not eof()
skip
endif
if eof()
this.enabled=.F.
endif
#4
在vizstyle.vcx类库中查看txtbtns类,有完整的代码.
#5
dfwxj(清风) 写的比较简洁
#6
补充:
我上面写的代码需要进行初始化,要不然可能会出错
初始化代码:
thisform.cmdpre.enabled=.f. &&刚打开表时记录指针肯定在第一条或表首,此时不需要操作上一条
thisform.cmdnext.enabled=recc()>1 &&只有超过一条记录时才有操作下一条的必要
我上面写的代码需要进行初始化,要不然可能会出错
初始化代码:
thisform.cmdpre.enabled=.f. &&刚打开表时记录指针肯定在第一条或表首,此时不需要操作上一条
thisform.cmdnext.enabled=recc()>1 &&只有超过一条记录时才有操作下一条的必要
#7
就这么简单
#8
实现在一个表单中FROM的KEYPREE属性代码(比如是键盘的PAGE UP 及 PAGE DOWN键)
LPARAMETERS nKeyCode, nShiftAltCtrl
do case
case nKeyCode = 18
skip -1
if bof()
go top
wait '第一个记录' window nowait
* messagebox("这已经是第一条记录!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
case nKeyCode = 3
skip
if eof()
go bottom
wait '最后记录' window nowait
* messagebox("这已经是最后一条记录了!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
endcase
LPARAMETERS nKeyCode, nShiftAltCtrl
do case
case nKeyCode = 18
skip -1
if bof()
go top
wait '第一个记录' window nowait
* messagebox("这已经是第一条记录!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
case nKeyCode = 3
skip
if eof()
go bottom
wait '最后记录' window nowait
* messagebox("这已经是最后一条记录了!",48,"系统警告提示")
else
wait '第'+alltrim(str(recno()))+'个记录' window nowait
endif
thisform.refresh
endcase