按照
有Form1,Form2两个窗口
在Form1的一个button的click事件教本如下Form2 form2 = new Formw2();
form2.ShowDialog(this);在打开form2以后调试发现form2的Owner和ParentForm属性都是null,按照MSDN中的说明
public DialogResult ShowDialog (
IWin32Window owner
)参数
owner
任何实现 IWin32Window(表示将拥有模式对话框的顶级窗口)的对象。 我觉得执行了form2.ShowDialog(this);后form2的Owner就应该是form1,可是实际的结果是否说明这两个属性都都必须显式的设置才有效。
例如
form2.Owner = form1;
form2.ParentForm = form2;

解决方案 »

  1.   

    但结果是那样的比如你 用Form1的一个button的click事件产生Form2那你就不能在关闭Form2以前关闭Form1..结论:Form1 是 Form2 的母窗体
      

  2.   

    你在FROM2里看,this.Owner是namespace.Form1
      

  3.   

    在打开form2以后调试发现form2的Owner和ParentForm属性都是null,
    ----------------------------------------------------------
    你的观察结果是错误的。不可能是这样的情况!
    你在FROM2里看,this.Owner是namespace.Form1
    所以MSDN的解释是没有错误的。
    而ParentFrom则是需要显式设置的。
      

  4.   

    我犯了个错误,我是在from2的构造函数中查看的Owner;
    另外还有个情况没有说清楚,我是在一个MDI框架中打开的子窗口,form1,然后在form1中form2.ShowDialog(this)打开的form2,在form2完全打开以后,调试发现form2的owner是MDI窗口,而ParentForm还是NUll