C# MDI窗口问题
在一个解决方案中,有Windows窗体A和库类BA中的Form1是一个MDI父窗口,B中有两个窗口Form2和Form3在Form1中点击一个按钮,就可以让B中的Form...
在一个解决方案中,有Windows窗体A和库类B
A中的Form1是一个MDI父窗口,B中有两个窗口Form2和Form3
在Form1中点击一个按钮,就可以让B中的Form2作为Form1的子窗口打开(这个会做),但是现在Form2中有一个按钮,单击后让Form3作为Form1的子窗口打开,并且关闭Form2,当Form3关闭后在自动打开Form2,使其还作为Form1的子窗口,怎么做?
注:项目A已经引用项目B,所以项目B不能再引用项目A了;并且项目B中的两个窗口需要有变量传递 展开
A中的Form1是一个MDI父窗口,B中有两个窗口Form2和Form3
在Form1中点击一个按钮,就可以让B中的Form2作为Form1的子窗口打开(这个会做),但是现在Form2中有一个按钮,单击后让Form3作为Form1的子窗口打开,并且关闭Form2,当Form3关闭后在自动打开Form2,使其还作为Form1的子窗口,怎么做?
注:项目A已经引用项目B,所以项目B不能再引用项目A了;并且项目B中的两个窗口需要有变量传递 展开
3个回答
2013-10-22
展开全部
两种方法,方法一,最为简单,show() form2的时候隐藏form3,show() form2的时候隐藏form3,在告诉你一点,mdi中的子窗口是不能再有子窗口的,换句话说就是mdi中的子窗口是不能作为父窗口的。方法二,新建一个类,就像默认的program类一样,控制form2和form3 show(),在form2销毁的时候查找form3 如果存在就show() 出来不存在就实例化后再show() form3销毁的时候同理,自己去琢磨,给你把代码写出了就没意思了
2013-10-22
展开全部
在form1 定义一个静态变量为0 确定打开哪个窗体
form1 加载的时候判断静态变量 如果为2打开窗口2 为3打开窗口3
然后你按钮单击的时候只要修改form1的静态变量就可以了
form1的代码
public static int a = 0;
public void form_open()
{
if (a == 2)
{
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Show();
}
if (a == 3)
{
Form3 f3 = new Form3();
this.Hide();
f3.ShowDialog();
this.Show();
form_open();
}
}
private void button1_Click(object sender, EventArgs e)
{
a = 2;
form_open();
}
form2的
private void button1_Click(object sender, EventArgs e)
{
Form1.a = 3;
this.Close();
}
form3的
private void button1_Click(object sender, EventArgs e)
{
Form1.a = 2;
this.Close();
}
form1 加载的时候判断静态变量 如果为2打开窗口2 为3打开窗口3
然后你按钮单击的时候只要修改form1的静态变量就可以了
form1的代码
public static int a = 0;
public void form_open()
{
if (a == 2)
{
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Show();
}
if (a == 3)
{
Form3 f3 = new Form3();
this.Hide();
f3.ShowDialog();
this.Show();
form_open();
}
}
private void button1_Click(object sender, EventArgs e)
{
a = 2;
form_open();
}
form2的
private void button1_Click(object sender, EventArgs e)
{
Form1.a = 3;
this.Close();
}
form3的
private void button1_Click(object sender, EventArgs e)
{
Form1.a = 2;
this.Close();
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-22
展开全部
先把form2和Form3都设为form1的子窗体,然后form2在在弹出form3时,把form2的窗体设为:this.hide();然后form3弹出form2是this.visible=false;this.close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询