在winforms中我们有objForm.Owner和objForm.Parent。这两者之间有什么不同。
我从表单A打开了一个表单B作为对话框,并期望使用ParentForm属性从表单B访问表单A的公共属性,但最终使用Owner属性而不是ParentForm为null !!
答案 0 :(得分:10)
当子窗口嵌入并且无法移动到其边界之外时,窗口之间存在父子关系。示例是TextBox和Panel等子控件。 MDI窗口模型,MDI子窗口嵌入在MDI父窗口中,并且是深灰色MDI客户端窗口的父级。
拥有的窗口适用于顶级窗口,主要控制其Z顺序。拥有的窗口始终位于其所有者之上。它还与主人一起最小化和恢复。例如工具窗口和对话框。
请注意,表单通常是顶级窗口,并且没有父级。因此不会使用其Parent和ParentForm属性。但是,可以通过将其TopLevel属性设置为 false 将其转换为子窗口。示例代码is here。
答案 1 :(得分:2)
Form.Owner - 表格是"拥有"这个表格。例如,“查找/替换”对话框将由记事本的主窗口拥有。如果你 最小化主表格,如果你还原,所拥有的表格将最小化 主要形式,所拥有的形式将恢复
ContainerControl.ParentForm - 此ContainerControl最终放置在哪个表单上
检查article。父母也对他们进行了解释。