vb 窗体焦点转移触发什么事件
2个回答
展开全部
按理说控件失去焦点时将会发生LostFocus事件,窗体也同样如此,但是此事件是在多个子窗体之间有效,因此可以使用API的方法,不断的获取目前焦点窗体,如果不为自己的窗体就执行自己的操作。
相关API
GetForegroundWindow
具体实现:(加个timer1,Interval设置为100)
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Dim ncheck As Boolean
Private Sub Form_Load()
ncheck = False
End Sub
Private Sub Timer1_Timer()
If GetForegroundWindow() = Me.hWnd Then ncheck = False
If GetForegroundWindow() <> Me.hWnd And ncheck = False Then
ncheck = True
'这里相当于窗体失去焦点的事件
MsgBox "Focus Lost!"
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询