Bildiginiz gibi formun event olayinda mouseleave yada mouseenter gibi olaylari yoktur bu yuzden mouse in form icinde mi yoksa disinda mi oldugunu su kodlar ile anlayabiliriz... bir modul atin ve su kodlari copy paste yapin.. Option Explicit Private Const WM_MOUSEMOVE = &H200 Private Const WM_MOUSELEAVE = &H2A3 Private Const GWL_WNDPROC = (-4) Private Const WM_NCDESTROY = &H82 Private Const OLDWNDPROC = "OldWndProc" Private Declare Function GetProp Lib "user32" Alias "GetPropA" As Long Private Declare Function SetProp Lib "user32" Alias "SetPropA" As Long Private Declare Function RemoveProp Lib "user32" Alias "RemovePropA" As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" As Long Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" As Long Private Declare Function GetModuleHandleA Lib "kernel32" As Long Private Declare Function GetProcAddress Lib "kernel32" As Long Private Declare Function FreeLibrary Lib "kernel32" As Long Private Declare Function LoadLibraryA Lib "kernel32" As Long Private Declare Function TrackMouseEvent Lib "user32" As Long Private Declare Function TrackMouseEventComCtl Lib "Comctl32" Alias "_TrackMouseEvent" As Long Private m_bTrack As Boolean Private m_bTrackUser32 As Boolean Private m_bInControl As Boolean Private Type TRACKMOUSEEVENT_STRUCT cbSize As Long dwFlags As Long hwndTrack As Long dwHoverTime As Long End Type Private Enum TRACKMOUSEEVENT_FLAGS TME_HOVER = &H1& TME_LEAVE = &H2& TME_QUERY = &H40000000 TME_CANCEL = &H80000000 End Enum Public Function SubClass As Boolean Dim lpfnOld As Long Dim fSuccess As Boolean Call MouseEvent(m_bTrack, m_bTrackUser32) If (GetProp = 0) Then lpfnOld = SetWindowLong If lpfnOld Then fSuccess = SetProp End If End If If fSuccess Then SubClass = True Else If lpfnOld Then Call UnSubClass End If End Function Public Function UnSubClass As Boolean Dim lpfnOld As Long lpfnOld = GetProp If lpfnOld Then If RemoveProp Then UnSubClass = SetWindowLong End If End If End Function Public Function WndProc As Long Select Case uMsg Case WM_NCDESTROY Call UnSubClass MsgBox "hata" & Hex$ , vbCritical, "hata" Case WM_MOUSEMOVE If Not m_bInControl Then m_bInControl = True If TrackMouseLeave(hWnd, m_bTrack, m_bTrackUser32) = True Then Debug. Print "form icinde" Form1. Caption = "Form icinde" End If End If Case WM_MOUSELEAVE m_bInControl = False Debug. Print "form disinda" Form1. Caption = "form disinda" End Select WndProc = CallWindowProc(GetProp , hWnd, uMsg, wParam, lParam) End Function Public Sub MouseEvent(ByRef bTrack As Boolean, ByRef bTrackUser32 As Boolean) bTrack = True bTrackUser32 = IsFunctionExported("TrackMouseEvent", "User32") If Not bTrackUser32 Then If Not IsFunctionExported("_TrackMouseEvent", "Comctl32") Then bTrack = False End If End If End Sub Private Function IsFunctionExported As Boolean On Error GoTo IsFunctionExported_Error Dim hmod As Long Dim bLibLoaded As Boolean hmod = GetModuleHandleA If hmod = 0 Then hmod = LoadLibraryA If hmod Then bLibLoaded = True End If If hmod Then If GetProcAddress Then IsFunctionExported = True End If If bLibLoaded Then Call FreeLibrary Exit Function IsFunctionExported_Error: End Function Public Function TrackMouseLeave(ByVal lng_hWnd As Long, ByVal bTrack As Boolean, ByVal bTrackUser32 As Boolean) As Boolean On Error GoTo TrackMouseLeave_Error Dim tme As TRACKMOUSEEVENT_STRUCT If bTrack Then With tme. cbSize = Len . dwFlags = TME_LEAVE. hwndTrack = lng_hWnd End With If bTrackUser32 Then Call TrackMouseEvent Else Call TrackMouseEventComCtl End If TrackMouseLeave = True End If Exit Function TrackMouseLeave_Error: End Function formun icinde... Option Explicit Private Sub Form_Load If SubClass Then Else MsgBox "!!!" End If End Sub Private Sub Form_Unload Call UnSubClass End Sub