什么是Parentform和Owner之间的区别

时间:2015-02-07 00:46:08

标签: c# winforms

在winforms中我们有objForm.Owner和objForm.Parent。这两者之间有什么不同。

我从表单A打开了一个表单B作为对话框,并期望使用ParentForm属性从表单B访问表单A的公共属性,但最终使用Owner属性而不是ParentForm为null !!

2 个答案:

答案 0 :(得分:10)

当子窗口嵌入并且无法移动到其边界之外时,窗口之间存在父子关系。示例是TextBox和Panel等子控件。 MDI窗口模型,MDI子窗口嵌入在MDI父窗口中,并且是深灰色MDI客户端窗口的父级。

拥有的窗口适用于顶级窗口,主要控制其Z顺序。拥有的窗口始终位于其所有者之上。它还与主人一起最小化和恢复。例如工具窗口和对话框。

请注意,表单通常是顶级窗口,并且没有父级。因此不会使用其Parent和ParentForm属性。但是,可以通过将其TopLevel属性设置为 false 将其转换为子窗口。示例代码is here

答案 1 :(得分:2)

  

Form.Owner - 表格是"拥有"这个表格。例如,“查找/替换”对话框将由记事本的主窗口拥有。如果你   最小化主表格,如果你还原,所拥有的表格将最小化   主要形式,所拥有的形式将恢复

     

ContainerControl.ParentForm - 此ContainerControl最终放置在哪个表单上

检查article。父母也对他们进行了解释。