vfp在GRID中如何实现自动换行
2个回答
展开全部
用表单的KeyPress事件解决这个问题较为合适。
KeyPress事件在用户按下并释放某键时发生,由具有焦点的对象接收。表单可在下列两种情况下接收KeyPress事件:(1)表单中不包含任何控件或所有控件都不可见或都未激活。(2)表单的KeyPreview 属性设置为.T.。
在表单的Init事件代码中增加如下代码:
ThisForm.KeyPreview=.T.
在表单的KeyPress事件中写入如下代码:
LPARAMETERS nKeyCode, nShiftAltCtrl &&这行代码由系统自动产生,不必录入
**/判断当前焦点是否在Grid控件上及按键是否是回车键或TAB键,GRID控件名称为GRID1 **/
With ThisForm.ActiveControl
IF Upper(.Name)=’GRID1’ And (m.nKeyCode=13 OR m.nKeyCode=9)
if .ActiveColumn=thisform.grid1.ColumnCount &&判断当前焦点是否在Grid控件的最后一个字段上
KeyBoard "{DnArrow}" &&是则下移一行
Endif
ENDIF
EndWith
至此, 输入焦点自动下移的问题解决。
其实核心就是模拟“下箭头键”,即 KeyBoard "{DnArrow}"
KeyPress事件在用户按下并释放某键时发生,由具有焦点的对象接收。表单可在下列两种情况下接收KeyPress事件:(1)表单中不包含任何控件或所有控件都不可见或都未激活。(2)表单的KeyPreview 属性设置为.T.。
在表单的Init事件代码中增加如下代码:
ThisForm.KeyPreview=.T.
在表单的KeyPress事件中写入如下代码:
LPARAMETERS nKeyCode, nShiftAltCtrl &&这行代码由系统自动产生,不必录入
**/判断当前焦点是否在Grid控件上及按键是否是回车键或TAB键,GRID控件名称为GRID1 **/
With ThisForm.ActiveControl
IF Upper(.Name)=’GRID1’ And (m.nKeyCode=13 OR m.nKeyCode=9)
if .ActiveColumn=thisform.grid1.ColumnCount &&判断当前焦点是否在Grid控件的最后一个字段上
KeyBoard "{DnArrow}" &&是则下移一行
Endif
ENDIF
EndWith
至此, 输入焦点自动下移的问题解决。
其实核心就是模拟“下箭头键”,即 KeyBoard "{DnArrow}"
2013-04-05
展开全部
在Text Keypress事件内激活下一列,类似如下: LPARAMETERS nKeyCode, nShiftAltCtrl if nKeyCode=13 tt=fsd.终止题 co1=thisform.grid1.activecolumn ro1=thisform.grid1.activerow if reccount()<=ro1 appe blank repla fsd.起始题 with tt+1 endif &&this.parent.parent.column2.setfocus thisform.grid1.activatecell(ro1+1,2) thisform.refresh endif
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询