| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9049 人关注过本帖
标题:文本框change事件触发
只看楼主 加入收藏
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
结帖率:77.78%
收藏
 问题点数:0 回复次数:5 
文本框change事件触发
Private Sub K_xj_Change()
If Me.Op_add = True Then
  Me.GMXJ.Text = Val(Me.GMXJ.Text) + Val(Me.K_xj.Text)
  End If
End Sub
这段代码调试了很久始终没有达到我的想法,如果Me.GMXJ.Text的值起始为2383,在Me.K_xj.Text输入1000后变成"1272"(实际减了1+10+100+1000,在Me.K_xj.Text每输入一个字符减了一次),和我最后想要的结果1383少了111,请问各位大虾,有什么办法解决吗?(去掉if语句一样)
搜索更多相关主题的帖子: change 文本框 玩具 
2017-02-16 22:52
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
Change事件就是在控件内容发生变化时产生的事件,你在输入1000的过程中实际控件内容变化了四次,所以结果是变化了1+10+100+1000,一般在做运算时,不建议使用Change事件。
建议使用LostFocus事件,就是在控件失去焦点时发生的事件,如果没有特殊需要,根本不需要判断语句,例如:
程序代码:
Private Sub Form_Load()
Text1.Text = 2383
End Sub
Private Sub Text2_LostFocus()
    Text1.Text = Val(Text1.Text) - Val(Text2.Text)
End Sub

这样只要Text2文本框失去焦点,这个事件发生会进行一次性运算,当然失去焦点可以使用鼠标点击其他控件,也可以按Tba键使其失去焦点。

请不要选我!!!
2017-02-17 07:34
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:0 
你的这个代码和描述正好相反的。一个加一个减。
正如你自己所说的,Text的change事件是文本发生变化就执行一次。
首先输入1, 这时候就会执行一次 2383-1
然后输入0,变成10 ,再次执行 2383-1-10
……
就代码和结果来说是正确的。如果你中间输错回退重输,那么结果更复杂。
楼上的lostfocus可以,或者干脆做一个执行按钮。
2017-02-17 08:58
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
做个回车触发代码就好了,在Text的KeyPress里做。具体怎么做不需要我来说了吧?大致就是把你的代码全部复制到这里面就好

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2017-02-19 17:44
chen3523
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:33
帖 子:223
专家分:1165
注 册:2013-2-12
收藏
得分:0 
之前我也用过change,当输入错误删除再改时,结果就完全与自己想要的不同了,后来如二楼所说用LostFocus事件,自己才满意。

调试失败3次后,关机睡觉,当醒来时多有收获。
2017-02-20 15:44
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
收藏
得分:0 
这几天很忙,感谢大家,用的lostfocus,OK了
2017-02-21 10:51
快速回复:文本框change事件触发
数据加载中...
 
   



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

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