读书人

怎么在子窗体里 关闭另一个子窗体

发布时间: 2013-04-21 21:18:07 作者: rapoo

如何在子窗体里 关闭另一个子窗体
本帖最后由 wang_maosen 于 2013-04-17 10:45:32 编辑 进入一个主窗体From1,然后弹出 Form2 和Form3 。

如何Form2 里的关闭Form3窗体?



求源码源码 源码 源码 源码 不要思路。

源代码
[解决办法]
在Form1中定义Form3和Form2的对象,重载Form2的构造函数,函数里加一个Form3类型参数
Form1中:
Form3 form3= new Form3()
Form2 form2= new Form2(form3)
Form2中:定义Form3类型变量
Form3 newform=null;
重载构造函数:
public Form2(Form3 pform)
{
newform=pform;
}
通过下面2句话可以在Form2中控制Form3的显示或关闭
newform.Show();
newform.Close();
[解决办法]

 Form2 fo2 = new Form2();
Form3 fo3 = new Form3();
public Form1()
{
InitializeComponent();
}

void Form1_Click(object sender, EventArgs e)
{
//fo3.Close();//这里关闭了form3就不能再显示,可以用隐藏
fo3.Hide();
}

private void button1_Click(object sender, EventArgs e)
{
fo2.Controls["button1"].Click += Form1_Click;//根据名字查找form2上的按钮
fo2.Show();
fo3.Show();
}

[解决办法]
是啊,只不过把代码在form1里边写着呢,你可以挪到form2里边啊。

就是在form1里边实例化一个form2,然后找到form2的按钮,在写click的事件,在事件里边吧form3关闭。

你把代码执行一下就知道了!
[解决办法]
form2里关闭form3

foreach(Form frm in this.MdiParent.MdiChildren)
{
if(frm is Form3)
{
frm.Close();
}
}

[解决办法]
form2里打开form3
Form3 frm=new Form3();
frm.MdiParent=this.MdiParent;
frm.Show();

[解决办法]
foreach (Form form in Application.OpenForms)
{
if (form.Name== "Form2")
{
form.Close();
break;


}
}

读书人网 >C#

热点推荐