首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

事件抑制发生解决思路

2012-01-13 
事件抑制发生各位朋友:请问一下在这种情况如何控制一个事件的发生比较合理如我在text1_Change事件中写了很

事件抑制发生
各位朋友:

        请问一下在这种情况如何控制一个事件的发生比较合理

        如我在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,我就是这样做的,我觉得除此之外没什么好办法。

热点排行