VB change事件的问题

2024-12-03 18:20:42
推荐回答(3个)
回答1:

如果A是一个对象型的变量,可以用WithEvents语句使A具有事件,语法如下
dim WithEvents A as 对象类型(如Label,Line,Image等等)
但是对于普通类型(如Integer,Double,Long等)是无法用WithEvents语句使其带有事件类型的。不过可以人工检测A的变化。加入实时跟踪integer类型的变量A的变化,当A变化时出发AChange事件,方法如下
新建一个变量A_Pre代表A的历史值,在form_load中:A_Pre=A
添加一个定时器Timer1,它的定时时间就是检测A是否发生变法的周期,随你定,比如顶为10ms,则设定Timer1.Interval=10
在timer1_time()中这样写
Private sub timer1_time()
if a_pre<>a then
call AChange '发生变化了,就出发Achange事件
end if
a_pre=a
end sub
Private sub AChange()
Label1.caption=" A 变化了"
end sub

回答2:

这……如果做的话,需要每个语句执行完都检查变量的值……

回答3:

用timer控件吧