c# 怎样在主窗体中关闭一个子窗体打开另一个子窗体,在线等

时间:2022-08-30 22:53:22
有一个窗体A是主窗体,单击主窗体A中一个按钮单开一个子窗体B,单击子窗体B中按钮,打开主窗体A中另一个子窗体C,同时关闭当前子窗体B,如何是实现,最好有每个窗体里的代码,谢谢!

5 个解决方案

#1



//窗体A中按钮
private void button1_Click(object sender, EventArgs e)
  {
  FormB formB = new FormB();
  formB.Show();
  }

//窗体B中按钮
        private void button1_Click(object sender, EventArgs e)
        {  
            Thread t = new Thread(new ThreadStart(delegate { Application.Run(new FormC()); }));
            t.Start();
            this.Dispose(true);
        }

#2


怎样让B C都为A的子窗体?在此拜谢

#3


引用 2 楼 guwen1111 的回复:
怎样让B C都为A的子窗体?在此拜谢


设置成MDI窗体。

#4


A窗体isMdiContainer属性设为true

#5


设置
B.Owner=A;
C.Owner=A;
就可以是A的子窗口
要实现窗口的控制,就要获得窗口的对象,如果你不要改初台化函数这么麻烦,可以在每个窗口类加一个静态字段
例如窗口A,它的类是 classs A
public static A myfrom;
之后在每个窗口的初始化函数中为对应静态字段赋值
myfrom=this;
有三个公共的静态对象,在任何类中都可以访问和控制

#1



//窗体A中按钮
private void button1_Click(object sender, EventArgs e)
  {
  FormB formB = new FormB();
  formB.Show();
  }

//窗体B中按钮
        private void button1_Click(object sender, EventArgs e)
        {  
            Thread t = new Thread(new ThreadStart(delegate { Application.Run(new FormC()); }));
            t.Start();
            this.Dispose(true);
        }

#2


怎样让B C都为A的子窗体?在此拜谢

#3


引用 2 楼 guwen1111 的回复:
怎样让B C都为A的子窗体?在此拜谢


设置成MDI窗体。

#4


A窗体isMdiContainer属性设为true

#5


设置
B.Owner=A;
C.Owner=A;
就可以是A的子窗口
要实现窗口的控制,就要获得窗口的对象,如果你不要改初台化函数这么麻烦,可以在每个窗口类加一个静态字段
例如窗口A,它的类是 classs A
public static A myfrom;
之后在每个窗口的初始化函数中为对应静态字段赋值
myfrom=this;
有三个公共的静态对象,在任何类中都可以访问和控制