| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1190 人关注过本帖
标题:vfp在文本框里删除数据时,当数据删完后,继续按删除键的话,删除键就像tab ...
只看楼主 加入收藏
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:3 
tlliqi版主和楼主说的“删除键”不是一回事:楼主说的是键盘上的Backspace键,版主说的是commandbutton按钮。
我想,如果楼主说的删除键是指Backspace键的话,那么应该在文本框的两个事件中加入如下代码:

KeyPress事件:
LPARAMETERS nKeyCode, nShiftAltCtrl &&这句话一进入该事件代码编辑框就有,不需要自己输入
PUBLIC Keycode
Keycode=nKeyCode  &&红色的变量名可以自己随便起

Valid事件:
IF KeyCode=127 &&该变量名要与KeyPress事件中的一致
   RETURN 0
ENDIF

我在9.0版本上试验成功的,应该也能用在6.0版本上。
2013-02-14 22:14
wyyq
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2013-2-11
收藏
得分:0 
我的是6.0的。可是我在init定义变量PUBLIC Keycode后可以运行。但是一点鼠标就提示操作符/操作类型不匹配。挂起指到语句IF KeyCode=127
2013-02-14 22:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
TextBox在按BackSpace键删除到头时是会自动跳转到前一个控件的

授人以渔,不授人以鱼。
2013-02-15 12:47
wyyq
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2013-2-11
收藏
得分:0 
那可以设置吗?
2013-02-15 14:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
默认就是这样的啊,不用设置的。

授人以渔,不授人以鱼。
2013-02-15 14:20
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用wyyq在2013-2-14 22:54:26的发言:

我的是6.0的。可是我在init定义变量PUBLIC Keycode后可以运行。但是一点鼠标就提示操作符/操作类型不匹配。挂起指到语句IF KeyCode=127

你是把keycode和nkeycode搞混淆了吧?或者你定义了keycode,但忘记给它赋值了?未赋值的变量在vfp中会当作逻辑值处理,当然类型就不匹配了。
2013-02-15 16:45
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
把KeyPress事件中的 PUBLIC Keycode 删除,放到表单的load 事件里执行。

相互学习,互相交流,共同提高。
2013-02-15 17:28
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用qjbzjp在2013-2-15 17:28:03的发言:

把KeyPress事件中的 PUBLIC Keycode 删除,放到表单的load 事件里执行。

效果有什么不同?
2013-02-15 20:12
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:5 
楼主只是说了一个情况
并没有说明他想要如何去做


不过大家真聪明
居然猜到楼主想什么

在text控件中,使用退格键(这不叫删除键,楼主)删除字符时
如果text控件中没有字符,光标就会跳到上一个TabIndex的控件

楼主是不是不想让光标跳?
还是使用KeyPress事件
程序代码:
LPARAMETERS nKeyCode, nShiftAltCtrl
If nKeyCode == 127
    If Empty(this.Value)
        Nodefault
    Endif
Endif 
如果使用text控件过多
那就自己封装的类吧

不过最好还是用编辑框(Edit)控件
我的重点在这里

个性太多,无法显示
2013-02-16 09:36
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用taohua300在2013-2-16 09:36:30的发言:

楼主只是说了一个情况
并没有说明他想要如何去做


不过大家真聪明
居然猜到楼主想什么

在text控件中,使用退格键(这不叫删除键,楼主)删除字符时
如果text控件中没有字符,光标就会跳到上一个TabIndex的控件

楼主是不是不想让光标跳?
还是使用KeyPress事件LPARAMETERS nKeyCode, nShiftAltCtrl
If nKeyCode == 127
    If Empty(this.Value)
        Nodefault
    Endif
Endif 如果使用text控件过多
那就自己封装的类吧

不过最好还是用编辑框(Edit)控件
我的重点在这里

判断文本框是否为空不是一个好办法,如果光标后面仍然有字符,且光标在第一位,则还是会发生跳转。
2013-02-16 13:01
快速回复:vfp在文本框里删除数据时,当数据删完后,继续按删除键的话,删除键就 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027155 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved