GRID
的使用技?/p>
1.
如何?/p>
GRID
里控制回车事?/p>
?/p>
VFP
里,
GRID
的默认控件都?/p>
TEXTBOX
?/p>
形成了一个表格,
但是在这个二维表里进?/p>
操作时,每次按回车都是往后一个单元格跳转,当到最后一列时?/p>
则继续跳到第一列,
进?/p>
循环,操作很不方便?/p>
下面说明如何?/p>
GRID
里的一个列里按回车使记录连续往下跳?/p>
(或可以执行其他的操
作)
,当跳转到最后一行时执行另一个操作?/p>
1、对
GRID
所在的表单新增属性:
cur_recn
记录当前记录?/p>
cur_recc
记录最大记录号
2
、在表单初始化,或给
GRID
以数据源时,就先计算出该表的最大的记录数,如下?/p>
thisform.cur_recc=recc()
为了一次得到当?/p>
GRID
里的表的记录总数
3
、在
GRID
?/p>
AfterRowColChange
事件里写?/p>
thisform.cur_recn=recn()
为了得到当前?/p>
GRID
里的表的记录?/p>
4
、在
GRID
里的某列?/p>
TEXT1
?/p>
KEYPRESS
事件里:
if nKeyCode = 13
&&
当按键为回车?/p>
if thisform.cur_recn>=thisform.cur_recc
**--
当当前记录大于等于最大记录时,即记录已到最后一个时
thisform.command1.setfocus
**--
使表单上的一个命令按纽聚焦,也即可以跳出?/p>
GRID
?/p>
**--
而正常的操作很难?/p>
GRID
里跳出,在这里就可以使在记录到最后时焦点跳出?/p>
else
thisform.cur_recn=recn()
&&
当记录还没到尾时,则
...
nodefault &&
不做任何响应
keyboard "{dnarrow}" &&
模拟键盘下箭头,使记录指针下移一?/p>
endif
endif
以上所说的?/p>
只要按键盘上的上下箭头即可轻易做到在
GRID
中移动指针,
没有太大的意义?/p>
2.
如何实现输完数据后按回车键,使表格中的焦点自动跳到下一?/p>
在你要判断转换的
GRID
?/p>
最后一列的
TEXT1
?/p>
keypress:
IF nKeyCode=13
SELECT
你绑定表?/p>
nRec=RECNO()
SKIP
IF EOF()
APPEND BLANK &&
在表尾加一空记?/p>
SKIP
&&
记录指针?/p>
EOF()
Thisform.grid1.refresh
Thisform.grid1.column1.text1.SetFocus &&
到最前面
ELSE
GO nRec &&
同一行,不要此就跳下一?/p>