Foxtable(狐表)用户栏目专家坐堂 → 对窗口中输入框的ValueChanged事件及输入框的其他事件的分析与讨论!


  共有21593人关注过本帖树形打印复制链接

主题:对窗口中输入框的ValueChanged事件及输入框的其他事件的分析与讨论!

帅哥哟,离线,有人找我吗?
程兴刚
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/2/7 13:41:00 [显示全部帖子]

这并不是bug!


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/2/7 15:01:00 [显示全部帖子]

      因为ValueChanged事件是在数据变化后执行,您的文字框控件又和全局变量进行了绑定,当点击页面,加入到页面中的控件的初始值为空,由于绑定过程的生效,把全局变量的值赋给了这个控件,该控件的值发生了变化,ValueChanged事件开始执行(此时应该执行,否则,就真是bug了),此次执行以后,全局变量的值和控件的值不再发生变化,所以就不再继续执行,如果您把其中一个变量的赋值公式变成这样:

Vars("a1") = Vars("a1")+1

当您点击页面的时候,该控件的值一直要不断递增下去,直到关闭窗口或死机(没有测试,这是原理,您可以试验一下)

由此可见,绑定后的文字框控件(包括其他类似控件)不能在ValueChanged事件执行代码(可以把代码改写到其他事件中,或者增加判断条件,判断某一个全局变量的值来实现,这样只有某一个全局变量的值符合要求,该事件的判断条件成立,则执行您需要执行的代码即可),相反,未绑定则可以执行ValueChanged事件!

[此贴子已经被作者于2009-2-7 15:03:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/2/7 17:36:00 [显示全部帖子]

呵呵,能改成全自动化才是好事,估计难度不小,不仅仅是这几个控件、还有表的单元格等所有涉及到ValueChanged事件的地方,都要改,而且,其值在什么情况下才算真正改变?nothing变为其他值不算真正变化的话,这种时候应该很多了,比如,起动系统,切换面板之前没有给变量赋值(看看能不能采用其他事件晚些给全局变量赋值,这样不知道行不行,没有细看您的文件),而是进入窗口的面板通过其他方法赋值产生的改变,也有从空值(nothing)变为其他值的过程,这样,又会出现新的问题,估计还是需要通过变通(其实也不叫变通,编程增加判断是很正常的事),仅代表个人观点,贺老师决定吧,本人不再议!


 回到顶部