事件抑制发生
各位朋友:
请问一下在这种情况如何控制一个事件的发生比较合理
如我在text1_Change事件中写了很多代码,为了方便录入的,此事件最初的目的是往文本框写入数据时触发。但是当我在读取数据而不是写入数据时也会触发此事件。
我想此时禁止触发该事件,通过一个变量值来判定是否执行事件内代码也可以做到,但我是一个控件数组,程序需反复跳转到此处来进行判定是否要执行Change事件内的代码,有没有办法在读取数据的过程中直接抑制事件发生,无需判定。
不知哪位朋友有比较好的解决办法,烦请指点一下,谢谢
如果在text1_change中不写代码通过过程调用也不是很合理,
[解决办法]
digitboy同学
你自己说的:但是当我在读取数据而不是写入数据时也会触发此事件...
现在又说:我是将数据库的数据读入到文本框
帮帮忙,这应该叫做 将数据库的数据写入到文本框
写到文本框当然会触发CHANGE事件了
[解决办法]
你在TextBox里屏蔽系统右键菜单,然后把代码写到Text1_KeyPress里去就可以实现了
这时用户要改变TextBox的内容就会有KeyPress,而在初始化的时候不会触发KeyPress
前提是没有其他功能修改TextBox内容,如果有的话,在修改之后调用一下你的过程处理一下就行
[解决办法]
Change 事件是无法避免的,其实只需要对 TextBox 有焦点时的事件进行响应就可以了,如下:
Private Sub Text1_Change()
If Not Me.ActiveControl Is Text1 Then Exit Sub
...
End Sub
[解决办法]
最好的办法你自己已经说过了,就是定义一个全局boolean变量,来确认是否需要change,我就是这样做的,我觉得除此之外没什么好办法。