1,现场描述:
我的主界面是MdiContainer的(FA),
单击一个菜单打开一个showdialog窗体(FB):FB.ShowDialog();
FB运行后将打开另外一个新窗体(FC)并关闭FB,
要求FC运行后是FA的子窗体。
于是我必须通过FB把FA传给FC:FC.MdiParent = FB.ParentForm;
但FB.ParentForm总为null,后来发觉还有个属性Owner,
于是FC.MdiParent = FB.Owner; 跟踪程序仍然为空,郁闷~~~~
难道真没办法解决吗?但是SQL Server 2000 的查询分析器不是做到了吗~~!!
2,转折点:
最后才知道是我的ShowDialog方法用错了!
其实ShowDialog 还有另外一个重载方法!!
Form.ShowDialog 方法 (IWin32Window)
将窗体显示为具有指定所有者的模式对话框。
参数 owner :
任何实现
IWin32Window
(表示将拥有模式对话框的顶级窗口)的对象。
3,结果:
改写代码为 :FB.ShowDialog(FA);
FC.MdiParent = FB.Owner;
终于运行成功,B界面关闭后,C界面成功成为A的子界面。
转载于:https://www.cnblogs.com/ClarkChan/archive/2006/10/16/530331.html