В моем домашнем приложении; Мне необходимо создать приложение, в котором я также должен использовать NotifyIcon.
Я столкнулся с проблемой, из-за которой я не могу понять, почему Код никогда не достигает События Уничтожения.
Я реализую «IDisposable»; (чтобы иметь возможность вызвать Dispose на NotifyIcon). Однако после добавления точки останова в событие dispose; Я вижу, что не могу этого достичь. Я не могу понять причину, по которой это не получается.
В настоящее время я следую этой теме, чтобы помочь мне с этим элементом управления:
NotifyIcon остается в трее даже после применения закрывается, но исчезает при наведении мыши
Может ли кто-нибудь помочь мне понять причину, по которой это происходит или что мне не хватает?
Код моего класса:
private NotifyIcon trayIcon;
public void CreateTrayIcon()
{
if (trayIcon == null) { trayIcon = new NotifyIcon(); }
trayIcon.Text = "My Tray Application";
trayIcon.Icon = Properties.Resources.AppIcon;
trayIcon.Disposed += TrayIcon_Disposed;
trayIcon.Visible = true;
}
private void TrayIcon_Disposed(object sender, EventArgs e) // Unreacheable Code
{
if (trayIcon != null)
{
trayIcon.Visible = false;
trayIcon = null;
}
}
protected virtual void Dispose(bool Disposing)
{
if (Disposing)
{
trayIcon.Dispose();
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
и Call NotifyIcon Dispose на главной форме; Form_ClosingEvent
private void Form_closing(object sender, FormClosingEventArgs e)
{
trayIcon.Dispose();
}