В приложении 2 формы. 1 форма открывается при запуске и имеет кнопку, при нажатии на которую 1 форма закрывается и открывается 2 (основная).
Нужно сделать сворачивание приложения в трей и контекстное меню у иконки в трее.
Делаю через компоненты notifyIcon и contextMenu. Они привязаны к конкретной форме и получается, если делать на каждой форме свои notifyIcon и contextMenu, то и код обработки копируется на обе формы и пункты меню для каждой формы нужно дублировать и при переключении между формами в трее 2 иконки.
Переключение между формами сделано так:
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Show();
Если вставить в метод переключения скрытие иконки 1 формы
this.notifyIcon1.Visible = false;
, то получается плохо. Технически это 2 разные иконки и иконка прыгает между другими в трее.
При попытке выйти из приложения на 2 форме через меню в трее
Application.Exit();
, 2 форма закрывается и открывается 1.
При попытке выйти из приложения на 2 форме через меню в трее
Environment.Exit(1);
, выход происходит, но 1 форма показывается на некоторе время.
Как правильно это реализовать? Хотелось бы работать с общим 1 компонентом, а не с двумя.