Приложение C # - this.show () и this.hide () вызывая зависание приложения - PullRequest
2 голосов
/ 01 июня 2011

У меня есть C# app, который я хочу запустить с иконки в трее. По сути, он не должен отображаться на панели задач при свернутом виде, но при двойном щелчке по значку на панели задач окно приложения должно отображаться как обычно.

Для этого я использую this.Show() и this.Hide(), которые делают именно то, что я хочу. Проблема, с которой я сталкиваюсь, заключается в том, что для некоторых пользователей, когда отображается приложение, появляется форма, но ни один из интерфейсов не отображается правильно, и все, что было открыто ниже формы, просвечивает. Форма перестает отвечать на запросы, но я все равно могу ее скрыть и показать, дважды щелкнув значок в трее ...

Если я уберу .Show() и .Hide(), приложение будет работать без проблем для пользователей.

Я делаю весь пользовательский интерфейс в основном потоке и проверяю InvokeRequired на двойную уверенность, поскольку у меня есть worker thread, но я не могу решить эту проблему. Другой момент заключается в том, что это происходит не всегда, а обычно только после того, как компьютер пользователя простаивает некоторое время.

Я бы очень признателен за любую помощь в этом. Машины WinXP используют .NET 3.5 и VS2008

1 Ответ

0 голосов
/ 01 июня 2011

Когда вы звоните это. Как и это. Скрыть?

Можете ли вы сравнить или попробовать метод, подробно изложенный в http://www.developer.com/net/net/article.php/3336751/C-Tip-Placing-Your-C-Application-in-the-System-Tray.htm

Если это не сделано правильно, то я думаю, что вы можете попасть в ситуацию, когда O / S запутается в состоянии формы и, например, может подумать, что форма уже показана и, следовательно, не перерисовывает ее полностью.

...