2009-09-07 4 views
1

В моем приложении C# Winforms есть диалоговое окно поиска без проблем. Поскольку пользователь имеет доступ к родительскому окну, в то время как диалоговое окно поиска не доступно, они также могут открыть диалоговое окно модальности. Поскольку диалоговое окно modeless всегда находится на вершине, оно скрывает модальный диалог, но пользователь не может закрыть диалоговое окно моделирования в этот момент, поскольку модальный диалог блокирует взаимодействие пользователя со всеми другими окнами.Есть ли способ автоматически скрыть диалоговое окно без проблем, когда родитель открывает диалоговое окно модальности?

В настоящее время я работаю над этим, вручную добавив код, чтобы закрыть диалоговое окно modeless find, прежде чем открывать любое модальное окно. Мне интересно, есть ли лучшее решение?

ответ

0

Как насчет того, чтобы диалог моделирования не всегда был включен, прежде чем вызывать модальные диалоги, а затем восстановить его?

modeless.TopMost = false; 
// show modal dialog here 
modeless.TopMost = true; 
0

Нужно ли всегда находить диалог поиска сверху? Если цель состоит в том, чтобы она плавала над основной формой, разве не достаточно установить основную форму как родительскую в диалоговом окне поиска? Тогда он всегда будет впереди, не обязательно быть всегда на вершине.

В противном случае я бы сделал диалог поиска, чтобы узнать, что происходит в приложении, и предпринять шаги соответственно. (Это можно решить разными способами: от событий до общей базы для всех форм приложения в CBT-крюке, который прослушивает общесистему для активации/деактивации окна.)

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