Как заставить одну форму оставаться поверх другой? - PullRequest
18 голосов
/ 13 июля 2009

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

Ответы [ 4 ]

30 голосов
/ 13 июля 2009

Используйте свойство Form.Owner вашей диалоговой формы и установите для него основную форму.

Подробнее здесь http://msdn.microsoft.com/en-us/library/system.windows.forms.form.owner.aspx

Форма владельца никогда не будет отображаться за формой владельца.

8 голосов
/ 15 апреля 2014

Это очень просто; Вам просто нужно передать владельца, когда вы вызываете метод Show()

YourForm.Show(parentForm);
1 голос
/ 13 июля 2009

Вы можете указать отношения родитель-потомок между окнами, указав родительскую форму в качестве параметра для метода ShowDialog (), вызываемого в дочерней форме. Дочернее окно останется поверх родительского, а также свернется и восстановится вместе с родительским.

0 голосов
/ 13 июля 2009

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

Для этого вы можете использовать ShowDialog () и StartPosition

SomeForm MyNewForm = new SomeForm();
MyNewForm.ShowDialog();

это заставит эту форму остаться поверх оригинальной, и вы также можете использовать

MyNewForm .StartPosition = FormStartPosition.CenterParent;

Для управления отображением новой формы на экране.

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