vb6 activate deactivate事件问题

zjraycj 2012-04-20 01:40:47
dim i as integer
Private Sub Command1_Click()
Print i
End Sub

Private Sub Form_Activate()
MsgBox "hello"
i = i + 1
'Form1.BackColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
End Sub

Private Sub Form_Deactivate()
MsgBox "bye-bye"
Form1.BackColor = RGB(255* Rnd(), 255 * Rnd(), 255 * Rnd())
End Sub

根据教材上说明,activate deactivate应该在窗口每次切换都后会执行,为何我测试时activate就第一次执行后,后面都不执行,而deactivate就根据一次也不执行?
请高手解答一下谢谢
...全文
334 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjraycj 2012-04-20
  • 打赏
  • 举报
回复
知道 了,我刚才也想到了,呵。不能是不同程序间的,只能是同一程序内的不同窗口切换才能发生这两个事件
vrgame 2012-04-20
  • 打赏
  • 举报
回复
MSDN说:
Activate 和 Deactivate 事件仅当驻点在一个应用程式内移动时才发生。在另一个应用程式中将驻点移向或移离一个物件时,不会触发任何一个事件。当一个物件释放时,不会发生 Deactivate 事件。

制作一 Project,
内置"Form1"与"Form2",

里头都加上:
Private Sub Form_Activate()
Debug.Print "Activate1_Form1" '或"Form2"
End Sub

Private Sub Form_Deactivate()
Debug.Print "Deactivate_Form1" '或"Form2"
End Sub

启动Form1与Form2,
来回切换点击,
就能在DebugWindow里看到回应了。
zjraycj 2012-04-20
  • 打赏
  • 举报
回复
有高手指点一下哪里的问题吗

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧