I think before you dispose of it you might try setting visibility to false. If you can move the mouse cursor over the icon and then it disappears that is what you will need to do. I have never tried disposing of a notify icon while program stays running so not sure how it reacts.
You actually should be able to re-use a single notify icon without continually disposing and initializing. I am sure you can just change the icon, text, and reconfigure the balloon tip when you need to change modes. I am positive that is how I have done something similar in past to show when scanner was connected/disconnected.
Edit:
Just found my sample from the scanner notify icon I mentioned so thought I'd share my example.
Select Case EventID
Case WIA_DEVICE_EVENTID.WIA_CONNECT
Me.NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
Me.NotifyIcon1.BalloonTipText = "Connected: " & vbCrLf & devsConnected & vbCrLf & "Disconnected:"
Me.NotifyIcon1.ShowBalloonTip(2000)
Me.NotifyIcon1.Icon = New Icon(...GetManifestResourceStream("Active.ico"), 16, 16)
Case WIA_DEVICE_EVENTID.WIA_DISCONNECT
Me.NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
Me.NotifyIcon1.BalloonTipText = "Connected: " & vbCrLf & devsConnected & vbCrLf & "Disconnected:" & vbCrLf & ScannerDetails.GetScannerName(DeviceID.Split("\")(1))
Me.NotifyIcon1.ShowBalloonTip(2000)
If devsConnected = "" Then
Me.NotifyIcon1.Icon = New Icon(...GetManifestResourceStream("InActive.ico"), 16, 16)
Else
Me.NotifyIcon1.Icon = New Icon(...GetManifestResourceStream("Active.ico"), 16, 16)
End If
End Select