Я написал небольшое приложение, которое в основном работает в системном трее. Приложение показывает уведомление при запуске, которое отлично работает. Если я запускаю действие из ContextMenuStrip, уведомитель должен изменить свой значок и вернуться к исходному после завершения процесса.
Я испытываю странное поведение: значок дублируется при первом действии и изменяет его значок правильно. Теперь я запускаю два уведомления в системном трее: одно из них работает правильно и меняет свой значок, когда задачи заканчиваются sh, другое просто остается там и функционирует - но без изменения значка.
I Я не уверен, откуда взялся второй значок.
Это часть кода, который я создаю при запуске уведомления:
Public Class NotifyIconManager
Private notifyIcon As NotifyIcon
Public Sub New()
notifyIcon = New NotifyIcon
notifyIcon.Icon = My.Resources.icon_normal
notifyIcon.Text = "Ready."
notifyIcon.ContextMenuStrip = Main.notifyicon_ContextMenuStrip
notifyIcon.Visible = True
AddHandler notifyIcon.MouseDoubleClick, AddressOf DoubleClick
End Sub
Public Sub SetNotifyIconUsage()
notifyIcon.Icon = My.Resources.icon_busy
notifyIcon.Text = "Working."
End Sub
Public Sub SetNotifyIconIdle()
notifyIcon.Icon = My.Resources.icon_normal
notifyIcon.Text = "Ready."
End Sub
End Class
Я меняю значок с помощью вызова boot.NotifyIconManager.SetNotifyIconUsage()
или boot.NotifyIconManager.SetNotifyIconIdle()
до запуска фонового работника. Один экземпляр класса создается в моей основной форме запуска:
Public NotifyIconManager As New NotifyIconManager
Теперь вопрос: как мне избавиться от дублированного уведомления?
I Я уже пытался утилизировать notifyicon и создавать новый каждый раз, когда я хочу поменять значок, но это также создает дубликат. Установка значка на Ничто и затем возврат к новому значку также не работает для меня.