У некоторых наших нетехнических пользователей возникают проблемы, когда диалоговое окно MessageBox в нашем приложении иногда может отображаться за основной формой, и приложение не принимает никаких входных данных до тех пор, пока окно сообщений (которое они не могут видеть) закрыто.
Приложение написано на C #, и окна сообщений являются стандартными, например, код может быть таким же простым, как MessageBox.Show (сообщение, заголовок), а окна сообщений могут создаваться основным потоком пользовательского интерфейса (т.е. не каким-либо фоновым потоком). Приложение не нужно запускать в полноэкранном режиме, но 90% наших пользователей запускают его в полноэкранном режиме.
Большую часть времени ((возможно,> 99%) ящики сообщений отображаются правильно, и мне никогда не удавалось увидеть, как это работает, но я видел машину, когда она работала неправильно.
Одна вещь, которую я заметил, это то, что если у вас есть приложение, которое отображает диалоговое окно, то когда вы смотрите на менеджер задач, вы обычно видите только одну запись в списке приложений. Всякий раз, когда окно сообщения скрыто, вы увидите две записи: одну для основного приложения и другую запись для этого окна сообщения.
Достаточно легко решить проблему, если вы знаете, что произошло, но некоторые наши нетехнические пользователи смущены этим и в конечном итоге отключают свои компьютеры. (А те, кто использует удаленный рабочий стол, еще больше запутываются, когда это не решает проблему).
Я не думаю, что это связано с операционной системой, поскольку я видел, что это происходит в Vista, и мне сказали, что это также происходит в терминальной сессии на сервере Windows 2003.
Кто-нибудь знает, почему это происходит, и что более важно, если что-то можно сделать, чтобы избежать этого?