Как позволить Windows сформировать EXIT в системный трей? - PullRequest
3 голосов
/ 25 августа 2010

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

Ответы [ 3 ]

3 голосов
/ 25 августа 2010

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

пример кода

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            this.Hide();
        }
2 голосов
/ 25 августа 2010

Обработайте событие FormClosing, заблокируйте Close (e.Cancel = true) и вместо этого сверните в системный трей , как если бы вы, ну, свернули в системный трей .

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

1 голос
/ 25 августа 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...