В чем разница между Parentform и Owner

В winforms мы имеем objForm.Owner и objForm.Parent. В чем разница между этими двумя.

Я открыл форму B из формы A в качестве диалогового окна и ожидал получить доступ к формам публичных свойств из формы B с использованием свойства ParentForm, но, в конечном итоге, использовал свойство Owner вместо того, чтобы ParentForm был null!

Ответ 1

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

Окно, находящееся в собственности, относится к окнам верхнего уровня и в основном контролирует их Z-порядок. Собственное окно всегда находится на вершине своего владельца. Он также минимизируется и восстанавливается вместе со своим владельцем. Примерами являются окна инструментов и диалоговые окна.

Обратите внимание, что форма обычно является окном верхнего уровня и не имеет родителя. Таким образом, он не будет использовать его свойства Parent и ParentForm. Однако его можно превратить в дочернее окно, установив для свойства TopLevel значение false. Пример кода здесь.

Ответ 2

Form.Owner. Является формой, которая "владеет" этой формой. Например, диалог поиска/замены будет принадлежать главному окну "Блокнот". если ты минимизировать основную форму, собственная форма будет минимизирована, если вы восстановите основная форма, собственная форма восстановит

ContainerControl.ParentForm. Это форма, которую этот контейнер ContainerControl в конечном итоге размещается на

Отметьте статью. Их также объясняет Родитель.