2015-02-07 43 views
6

在winforms中,我們有objForm.Owner和objForm.Parent。這兩者有什麼區別。Parentform和Owner有什麼區別

我從表單A打開了一個表單B作爲對話框,並期望使用ParentForm屬性從表單B訪問表單A的公共屬性,但最終最終以OwnerForm結尾,因爲ParentForm爲null!

+0

你能展示破解的代碼嗎?這是相關的:http://stackoverflow.com/questions/8784551/how-parentform-reference-is-null – BradleyDotNET 2015-02-07 00:52:46

+1

如果谷歌沒有在那裏,http://bytes.com/topic/visual-basic-net/答案/ 386153-owner-vs-parent-vs-parentform – EZI 2015-02-07 00:53:48

+1

Raymond Chen在業主與父母之間有一篇很好的文章:http://blogs.msdn.com/b/oldnewthing/archive/2010/03/15/9978691.aspx – 2015-02-07 01:00:45

回答

2

Form.Owner - 是「擁有」這種形式的表格。例如查找/替換對話框將由記事本的主窗口占有。如果您 最小化的主要形式,所擁有的形式將最大限度地減少,如果還原 的主要形式,所擁有的形式將恢復

ContainerControl.ParentForm - 的形式,這一個ContainerControl最終放在

檢查此article。他們也被解釋爲家長。

7

父窗口之間存在父子關係,子窗口嵌入式在父窗口中,無法移動到其邊界之外。示例是像TextBox和Panel這樣的子控件。 MDI窗口模型MDI子窗口嵌入在MDI父窗口中,並且已經用於深灰色MDI客戶端窗口。

擁有的窗口適用於頂層窗口,主要控制它們的Z順序。擁有的窗戶始終位於其所有者之上。它也與其所有者一起被最小化和恢復。例子是工具窗口和對話框。

請注意窗體通常是頂層窗口,並且沒有父窗體。所以不會有用於其Parent和ParentForm屬性。然而,它可以通過將其TopLevel屬性設置爲false而變成子窗口。示例代碼is here