Application.Idle запускается только после того, как наведу курсор мыши на иконку в трее - PullRequest
1 голос
/ 13 мая 2011

Я хочу показать BalloonTip в событии Application.Idle моей программы, но по какой-то причине событие Application.Idle срабатывает только после того, как я наведу курсор мыши на NotifyIcon.Что дает?

1 Ответ

1 голос
/ 13 мая 2011

Вы уверены, что Application.Idle не уволят?Простой способ - войти в файл всякий раз, когда код входит в событие, и посмотреть, происходит ли это.

Также следует понимать, что это событие может не подходить для ваших нужд - это происходит, когда насос сообщений становится пустым (как правило, без ввода с клавиатуры / мыши) - поэтому вы, вероятно, получите это событие слишком часто (см. эта тема , чтобы понять больше).В этом случае я подозреваю, что окна подавляют всплывающую подсказку, возможно, потому, что она показывается слишком часто.

Таким образом, вы можете написать код, чтобы показать подсказку, только если она не была показана, скажем, в последние 2-3 секунды.Возможно, вы захотите взглянуть на различные реализации обнаружения простоя в соответствии с вашими требованиями - взгляните на:

  1. http://ellisweb.net/2008/02/detecting-application-idle-state-in-windows-forms/
  2. http://blog.opennetcf.com/ctacke/2009/05/19/DetectingApplicationIdle.aspx
  3. http://www.codeproject.com/KB/miscctrl/Application_Idle.aspx
...