我相信一个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