点击frm1上的按钮,触发 frmMain 中的一个方法,这个方法里边 写打开frm2窗口的代码。

解决方案 »

  1.   

    设置MdiParent:
    public partial class Form1 : Form
    {
        public Form1()
        {
            //InitializeComponent();
            this.IsMdiContainer = true;
        }    protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);        Frm1 frm1 = new Frm1() { MdiParent = this };
            frm1.Show();
        }
    }public class Frm1 : Form
    {
        public Frm1()
        {
            Button button = new Button() { Text = "Show frm2" };
            button.Click += (o,e) => {
                Form frm2 = new Form() { Text = "frm2" };
                frm2.MdiParent = this.MdiParent;
                frm2.Show();
                this.Close();
            };
            this.Controls.Add(button);
        }
    }
      

  2.   

    推荐办法
    用委托将frm1上一个按钮的点击事件穿回父窗体,由父窗体弹出frm2。
    这样其实是方便你通过父窗体控制子窗体其实你要是就想简单试试,可以把父窗体通过属性方法传给frm1,然后在frm1里就可以操作了再其实,show方法有个show(owner)的重载,如果只是想主窗体关闭frm2也关闭的话
    frm2.show(frm1.爹妈窗体) 就可以了
      

  3.   

    frm2.midparent=this.parent
    这样不行?
      

  4.   

    frm2.midparent=this.midparent
    好像应该这样