Как сделать одну форму на вершине другой?
Я нашел свойство 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;
Чтобы контролировать, где эта новая форма отображается на экране.