日期:2014-05-18  浏览次数:20786 次

父窗体和子窗体问题
问题描述:
有个父窗体F_Main,调用一个设置参数的窗体F_form1,F_form1点击其按钮“下一步”可以打开F_form2,F_form2点击“完成”按钮打开窗体F_child,怎么才能将窗体F_child的父窗体设置为F_Main?????
主体直接调用的话就直接 F_child.mdiparent=this;但是这里用不上this了,是不是应该做个全局变量或者方法获取主窗体句柄?
请求高手解决!

------解决方案--------------------
可以设置一个全局变量因为你的F-Main似乎只有一个实例,
------解决方案--------------------
再要不然,你可以让F_form1不直接打开F_form2,F_form2 也不直接打开F_child,而是让它们都调用F_Main的一个方法来打开其他窗体,这样你就可以用this指针了,

------解决方案--------------------
建议F_form1,F_form2,F_child打开的顺序关系写在主窗体之内,而不是让他们之间相互调用。

F_form1 frm1 = new F_form1();

if (frm1.ShowDialog() == DialogResult.OK)
{
F_form2 frm2 = new F_form2();

if (frm2.ShowDialog() == DialogResult.OK)
{
F_child frmChild = new F_child();
frmChild.Mdiparent = this;
frmChild.Show();

}
}

}