以下是引用程兴刚在2009-2-7 15:01:00的发言:
因为ValueChanged事件是在数据变化后执行,您的文字框控件又和全局变量进行了绑定,当点击页面,加入到页面中的控件的初始值为空,由于绑定过程的生效,把全局变量的值赋给了这个控件,该控件的值发生了变化,ValueChanged事件开始执行(此时应该执行,否则,就真是bug了),此次执行以后,全局变量的值和控件的值不再发生变化,所以就不再继续执行
由此可见,绑定后的文字框控件(包括其他类似控件)不能在ValueChanged事件执行代码(可以把代码改写到其他事件中,或者增加判断条件,判断某一个全局变量的值来实现,这样只有某一个全局变量的值符合要求,该事件的判断条件成立,则执行您需要执行的代码即可),相反,未绑定则可以执行ValueChanged事件!
[此贴子已经被作者于2009-2-7 15:03:54编辑过]
如果真的是这样,那么在窗口中的输入框将无法再使用ValueChanged事件了(因为窗口中的输入框一般情况下都要绑定全局变量或者字段)。但在实际应用中,窗口事件中可能使用频率最多的就是ValueChanged事件了。如果对于每个ValueChanged事件还要用户自己加一些判断语句,真的是太不方便了,会大大的影响设计效率,这岂不违背了FoxTable的设计效率高使用简便的宗旨了吗?再者换个角度来说,既然用户在使用ValueChanged 事件时另外加个全局变量作个判断就可以解决问题,那么在系统中自动作这个判断应该也是很简单的事情,怎么会难度不小呢?
而且在测试过程中,发现有的输入框却能正常的显示出全局变量的值,而另一些不能正常显示出全局变量的值,不知是怎么回事,搞得有些莫名奇妙。其实,我认为解决这个问题应该是有办法的,系统应该在打开窗口时或者切换页面时,这时候每个控件都需要从全局变量或者字段取值,这时候不需要执行ValueChanged事件,而只在窗口或页面中的控件已经从全局变量或者字段首次取值后,如果再发生变化,再激活ValueChanged事件。总之,我认为,软件应该是以人为本,以实际需要、以使用方便为目标,而不是麻烦不麻烦。所以,希望贺老师重视此问题,尽快改进!因为我的系统设计了一半,只能等程序改进后再继续了!
[此贴子已经被作者于2009-2-8 10:25:42编辑过]