Диалоговое окно сообщений иногда скрыто за основной формой.C#

Место общения программистов C#
Anonymous
Диалоговое окно сообщений иногда скрыто за основной формой.

Сообщение Anonymous »

У некоторых наших нетехнических пользователей возникают проблемы, когда диалоговое окно MessageBox в нашем приложении иногда может отображаться позади основной формы, и приложение не принимает никаких входных данных до тех пор, пока окно сообщения (которое они не видят) не будет закрыто.

Приложение написано на C#, и окна сообщений являются стандартными, например, код может быть таким простым, как MessageBox.Show(message, caption), а окна сообщений могут создаваться с помощью основной поток пользовательского интерфейса (т.е. не какой-то фоновый поток). Приложение не обязательно должно запускаться в полноэкранном режиме, но 90% наших пользователей запускают его в полноэкранном режиме.

Большую часть времени ((может быть, > 99%) окна сообщений отображаются правильно, и мне никогда не удавалось увидеть, почему что-то идет не так, но я видел машину, когда она пошла не так.

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

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

Я не думаю, что это связано с операционной системой, поскольку я видел это в Vista, и мне сказали, что это также происходит в терминальном сеансе на сервере Windows 2003.

Кто-нибудь знает, почему это происходит и, что более важно, можно ли что-нибудь сделать, чтобы этого избежать?

Подробнее здесь: https://stackoverflow.com/questions/346 ... -main-form

Вернуться в «C#»