父窗体包含俩个容器。panel1 和panel2panel1中包含一个窗体Form1 怎样在panel1中包含的窗体Form1中的一个按钮来在父窗体中的panel2容器中打开一个窗体。。
要怎么写啊??

解决方案 »

  1.   

    Form2 form = new Form2();
    private void button1_Click(object sender, EventArgs e)
    {
      form.TopLevel = false;
      form.Dock = DockStyle.Fill;
      form.FormBorderStyle = FormBorderStyle.None;
      form.Parent = panel2;
      form.Show();  
    }
      

  2.   

    我的父窗体不是建的MDI父级别。。我是把IsMdiContainer的值设置为Ture而已。。怎么在包含两个容器的窗体的一个容器里的窗体的按钮控制另外一个容器打开某个窗体。。
      

  3.   

    首先我有一个窗体A
    A中包含两个panel容器 A1 和 A2
    A1 中包含窗体 Form1怎样在A1中的Form1中的按钮在A2中打开窗体Form2
      

  4.   

            Form2 f;
            private void button1_Click(object sender, EventArgs e)
            {
                f = new Form2();
                f.TopLevel = false;
                f.Dock = DockStyle.Fill;
                f.Parent = panel2;
                f.Show();
            }
      

  5.   

    你在子窗体form1中要把form2显示在父窗口的panel2中的话,在子窗口中调用一个父窗口的委托就好了
      

  6.   

    这样写是在当前窗体form1的容器中打开了。。
    我是要在A的 panel容器 A2 中打开窗体
      

  7.   

    通过子窗口发布事件来解决:
    子窗口代码:
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public event EventHandler ButtonClick;
            private void button1_Click(object sender, EventArgs e)
            {
                if (ButtonClick != null)
                    ButtonClick(this, EventArgs.Empty);
            }
        }父窗口打开子窗口代码:
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 frm = new Form1();
                frm.TopLevel = false;
                this.panel1.Controls.Add(frm);
                frm.ButtonClick += new EventHandler(frm_ButtonClick);
                frm.Show();
            }        void frm_ButtonClick(object sender, EventArgs e)
            {
                Form frm = new Form2();
                frm.TopLevel = false;
                this.panel3.Controls.Add(frm);
                frm.Show();
            }
      

  8.   


    void frm_ButtonClick(object sender, EventArgs e)
            {
                Form frm = new Form2();
                frm.TopLevel = false;
                this.panel3.Controls.Add(frm);
                frm.Show();
            }
    直接放到父窗口中我不太清楚在父窗口中如何打开的Form1,如下面的方法打开Form1就可以了:
    Form1 frm = new Form1();
                frm.TopLevel = false;
                this.panel1.Controls.Add(frm);
                frm.ButtonClick += new EventHandler(frm_ButtonClick);
                frm.Show();
      

  9.   

    放到父窗口中,这是打开Panel1中子窗口的代码
      

  10.   

        public partial class Form3 : Form
        {
            Panel p;
            public Form3(Panel p)
            {
                InitializeComponent();
                this.p = p;
            }
            Form2 f2;
            private void button1_Click(object sender, EventArgs e)
            {
                f2 = new Form2();
                f2.TopLevel = false;
                f2.Dock = DockStyle.Fill;
                f2.Parent = p;
                f2.Show();
            }
        }
            Form3 f3;
            private void Form1_Load(object sender, EventArgs e)
            {
                f3 = new Form3(this.panel2);
                f3.TopLevel = false;
                f3.Dock = DockStyle.Fill;
                f3.Parent = panel1;
                f3.Show();
            }