2010-08-25 3 views
3

Я имею в виду выход в системный лоток, а не сведение к системному лотку, т. Е. Когда вы нажимаете «красный крест» в верхнем правом углу формы Windows, вместо закрытия приложения он запускается в системном трее.Как разрешить Windows EXIT в системном трее?

+0

Я вижу, вы спрашиваете 2 способа, один из которых вы говорите, что хотите, чтобы он вышел, так как в процессе больше не работает. другой, вы хотите, чтобы он работал в системном трее. В зависимости от того, на что вы действительно хотите (у вас не может быть обоих), мой ответ или ответы ajay_whiz/Dave могут быть правильными –

ответ

3

Вы можете подключить к форме закрытия события и отменить событие закрытия и скрытия форме

образец кода

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      e.Cancel = true; 
      this.Hide(); 
     } 
2

Обрабатывать событие FormClosing, блокировать Close (e.Cancel = true) и вместо minimize to the system tray, как если бы если бы вы были, ну, minimizing to the system tray.

Вы, конечно, должны иметь условие, при котором закрытие формы не сворачивается в системный лоток. Например, отслеживание состояния и если форма уже свернута, а затем форма фактически закрывается.

1

Это не представляется возможным «выход» в системный трей, процесс с очереди сообщений должна быть запущена, чтобы иконка появится в трее и функции правильно (например, не исчезает при наведении на него)

Способ, которым adobe и другие обрабатывают это, - это иметь отдельное приложение, которое просто обозначает значок в системном трее, когда вы нажимаете на него, и приложение не запускается, оно запускает его, если приложение уже запущено, оно приводит его к на переднем плане.

Смежные вопросы