У меня есть приложение, которое использует NotifyIcon в лотке для скрытия/восстановления приложения, а также всплывающие уведомления пользователю о событиях приложения. Мое приложение имеет очередь уведомлений, и я использую событие NotificationIcon.BalloonTipClosed, чтобы определить, когда нужно сбросить воздушный шар и показать следующее уведомление (если в очереди есть один).Как узнать, закрыт ли кончик воздушного шара в системном лотке?
Этот метод, кажется, отлично работает как по обычным причинам (пользователь позволяет закрывать баллон, когда он истекает, и пользователь щелкает «X» в воздушном шаре, чтобы заставить его закрыть), но есть третий случай, когда BalloonTipClosed doesn ' т дозвонились:
- Уведомление всплывает
- Хотя это видно, пользователь щелкает правой кнопкой мыши на значок уведомления, чтобы вызвать контекстное меню, в результате чего шар исчезнуть
событие BalloonTipClosed Безразлично» t запускается в этом экземпляр - я полагаю, что это ошибка в структуре (я использую 2.0), но разве у кого-нибудь есть идея вокруг этого? Если я не получаю это событие, мое приложение всегда думает, что есть видимый воздушный шар (у меня есть логическое значение, которое мешает ему отображать сразу несколько воздушных шаров), и он никогда не отобразит еще один значок, пока он работает.
Проблема с этим состоит в том, что, в то время как я могу захватить событие icon_click, и я знаю, что воздушный шар закрыл в тот момент, я Не уверен, когда показывать следующий воздушный шар. Отображение его немедленно будет зависеть от того, что делает пользователь. Я могу сделать это с задержкой после щелчка, и это все еще связано с таймером, поэтому я бы скорее использовал таймер во всех случаях. – SqlRyan
Хорошая точка. Предполагая, что единственное, что пользователь может «сделать там», - это активировать контекстное меню, если вы обрабатываете меню «Открытие» и «Закрытые события» и отображаете только следующий воздушный шар, если контекстное меню не активируется. Вы также можете принять это решение в зависимости от того, какой пункт меню выбирается пользователем – Bob