.net Window Order - PullRequest
       3

.net Window Order

1 голос
/ 11 августа 2009

У меня есть проект с несколькими формами, и когда, например, форма A открывает форму B, которая открывает форму C, затем форма C закрывается, форма B и форма A переходят в конец порядка окон, так что другие открытые программы отображаются перед этими другими формами в проекте.

Почему это происходит и как я могу убедиться, что последняя открытая форма отображается, когда другая форма закрыта?

Ответы [ 4 ]

3 голосов
/ 11 августа 2009

Убедитесь, что вы устанавливаете свойство Owner форм, открываемых другими элементами управления или формами, либо устанавливая свойство явно, либо передавая владельцу в качестве параметра значение Show() или ShowDialog().

1 голос
/ 11 августа 2009

Вы можете отслеживать «последнюю» форму в каждой из ваших форм, а при закрытии активировать ее. То есть: если форма B открывает форму C, форма C может сохранять ссылку на форму B (или любую форму, активируемую при закрытии) и выводить ее на передний план при закрытии формы.

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

0 голосов
/ 11 августа 2009

Ну, может быть, вам нужно настроить новые формы в виде модального диалога с правами собственности на старые формы. Таким образом, когда новая форма закрывается, новая форма будет видна. Кроме того, пока открыта новая форма, никто не сможет получить доступ к старым формам.

0 голосов
/ 11 августа 2009

Вы можете иметь серию диалоговых форм, открытых из одной формы, по порядку. Это позволяет вам проверить DialogResult - тогда вы сможете контролировать направление, в котором вы открываете новые формы или показывает старые формы.

Если вас беспокоит z-порядок множества форм, вы можете изменить свой пользовательский интерфейс, чтобы избежать нескольких немодальных окон.

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