Как мне открыть мою закрытую форму через значок уведомления на панели задач?

#c# #winforms #notifyicon

#c# #winforms #notifyicon

Вопрос:

В настоящее время я разрабатываю приложение Windows form на c #, которое имеет несколько форм.

Я запускаю фоновую форму, которая управляет свойством notifyicon, позволяющим отображать значок на панели задач.

Когда я запускаю программу, она запускает LoginForm, после чего, войдя в систему, она перейдет в основную форму. После закрытия основной формы приложение еще не закрывается, что в данном случае работает как Windows Live Messenger.

Как мне создать свою программу таким образом, чтобы после того, как я открою основную форму, двойным щелчком мыши она вернет форму обратно? (Например, как работает MSN.)

Или это лучшее решение для меня, чтобы закрыть все приложение, когда я нажимаю кнопку X в строке заголовка. Что вызывает у меня еще одну проблему, поскольку я, похоже, не могу выйти из приложения, когда закрываю другие формы, отличные от основной формы.

Комментарии:

1. Вы не можете открыть закрытую форму, которая завершается с ошибкой ObjectDisposedException . Создайте новую. Я должен догадаться, что ваша (скрытая) форма входа поддерживает работу приложения. Непонятно.

Ответ №1:

Вероятно, у вас есть NotifyIcon в вашей основной форме. Подпишитесь на DoubleClick событие этого элемента управления и измените состояние вашей основной формы в обработчике:

     private void notifyIcon1_DoubleClick(object sender, EventArgs e)
    {
        this.Show();
        this.Visible = true;
        this.WindowState = FormWindowState.Normal;
    }
 

Ответ №2:

Просто установите Visible для свойства формы значение true / false . Или вы могли бы вызвать Show() / Hide() .