我相信一個winform的所有者可以明確地通過.Owner財產或使車主在重載的方法來設置的ShowDialog(IWin32Window所有者).Owner屬性和ShowDialog(IWin32Window所有者)之間的區別?
我無法理解爲什麼這些方法表現出不同的行爲時,使用MDI表格。
我已經創建了MDIParent和MDIChild。
我也有一個簡單的winform MyDialogBox,顯示它的負載所有者。
MessageBox.Show("Dialog's owner is " + this.Owner.Name);
方法A - 在MDIChild的負載我有以下代碼,這會導致MyDialogBox的所有者被設置爲MDIChild
MyDialogBox box = new MyDialogBox();
box.Owner = this; // Set owner as MDIChild
box.ShowDialog();
方法B - 可選地,在負載方法MDIChild我有下面的代碼,這會導致MyDialogBox的所有者設置爲的MdiParent
MyDialogBox box = new MyDialogBox();
box.ShowDialog(this); // Pass MyMDIChild as owner
我也閱讀下列here
只有MDI父窗體可以根據自己的另一種形式,無論是MDI子,一個模式對話框或者家長被設置爲所有者PARAM形式。
如果是的話方法A根本不應該工作,不是嗎?
我錯過了什麼?爲什麼方法B沒有將所有者設置爲MDIChild?
嘗試在VB6中執行此操作,看看它是否與您提供的鏈接相匹配。如果是這樣,我猜 - 框架有一個錯誤。 – shahkalpesh 2008-12-28 19:57:32
不確定VB6,但VB.NET似乎與C#一樣。 – Preets 2008-12-30 16:15:40