Как сделать одну форму на вершине другой?

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

YourForm.Show(parentForm);

Ответ 3

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

Ответ 4

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

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

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

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

MyNewForm .StartPosition = FormStartPosition.CenterParent;

Чтобы контролировать, где эта новая форма отображается на экране.