private static void CH_Stop() { if (ch_Active) { ch_Timer.Dispose(); ch_Timer = null; Application.RemoveMessageFilter(ch_MessageFilter); ch_MessageFilter = null; ch_Items.Clear(); ch_Items = null; ch_Disabled = false; ch_DisabledCount = 0; Application.EnterThreadModal -= CH_EnterThreadModal; Application.LeaveThreadModal -= CH_LeaveThreadModal; ch_ModalThread = false; ch_Active = false; if (ch_Hidden) { Cursor.Show(); ch_Hidden = false; } } }
// ******************************** Cursor Hide - Start / Stop / Disable / Modal Thread #region Cursor Hide - Start / Stop / Disable / Modal Thread private static void CH_Start() { if (!ch_Active) { if (ch_Timer == null) { ch_Timer = new Timer { Interval = ch_Delay == 1 ? 500 : 100 // _cursorHideDelay * 500; }; ch_Timer.Tick += CH_TimerTick; ch_MessageFilter = new CH_MessageFilter(); } ch_Moved = DateTime.Now; ch_Timer.Start(); Application.AddMessageFilter(ch_MessageFilter); Application.EnterThreadModal += CH_EnterThreadModal; Application.LeaveThreadModal += CH_LeaveThreadModal; ch_Active = true; } }