在表格的最后一列输入数据后,怎样将光标定位到下一行的第一列继续输入?

时间:2021-09-09 15:04:53
表格的数据源为outlist.dbf,有三个字段severid,sendid,num.我需要在第三列输入数据后,按回车键地直接进入下一行继续输入,所以在表格第三列的text1控件的keypress事件中加入了以下代码:
   if nKeyCode=13
     select outlist
     append blank
     thisform.grid1.activatecell(thisform.grid1.activerow+1,1)
     thisform.grid1.refresh
endif
运行时在第三列输入数据回车后,表格的前两行都显示刚才输入的数据,光标定位在第一行第一列,不知道是什么原因,请各位帮忙看一下到底错在哪里,谢谢!

4 个解决方案

#1


本帖最后由 apple_8180 于 2009-07-22 09:46:18 编辑
将 Grid 的 AllowAddNew 设为 .T.
在 Grid 的最后一列的 Text1 的 KeyPress 事件加代码:

Lparameters nKeyCode, nShiftAltCtrl
If m.nKeyCode=13
Nodefault
Keyboard '{RIGHTARROW}' Plain
Keyboard '{DNARROW}' Plain
Endif

#2


我试了一下,按上面的办法设置Text1 的 KeyPress 事件后,焦点是移到下一行的第一列,但第二行却显示了第一列相同的数据,按说第二行是刚添加的一个空白记录,第二行应该显示为空白才对,怎么会这样显示呢?

#3


引用 2 楼 gongyuchen 的回复:
我试了一下,按上面的办法设置Text1 的 KeyPress 事件后,焦点是移到下一行的第一列,但第二行却显示了第一列相同的数据,按说第二行是刚添加的一个空白记录,第二行应该显示为空白才对,怎么会这样显示呢?

主程序中 set carry off

#4


应该是你代码问题。

如果这样你用不好的话,可以不再 Grid 中操作。

#1


本帖最后由 apple_8180 于 2009-07-22 09:46:18 编辑
将 Grid 的 AllowAddNew 设为 .T.
在 Grid 的最后一列的 Text1 的 KeyPress 事件加代码:

Lparameters nKeyCode, nShiftAltCtrl
If m.nKeyCode=13
Nodefault
Keyboard '{RIGHTARROW}' Plain
Keyboard '{DNARROW}' Plain
Endif

#2


我试了一下,按上面的办法设置Text1 的 KeyPress 事件后,焦点是移到下一行的第一列,但第二行却显示了第一列相同的数据,按说第二行是刚添加的一个空白记录,第二行应该显示为空白才对,怎么会这样显示呢?

#3


引用 2 楼 gongyuchen 的回复:
我试了一下,按上面的办法设置Text1 的 KeyPress 事件后,焦点是移到下一行的第一列,但第二行却显示了第一列相同的数据,按说第二行是刚添加的一个空白记录,第二行应该显示为空白才对,怎么会这样显示呢?

主程序中 set carry off

#4


应该是你代码问题。

如果这样你用不好的话,可以不再 Grid 中操作。