Form1中有三个panel。{ panel1  ,panel2 ,panel3         }  另外有两个窗体 Form2  ,Form3 。panel1 中有个button1。目的让Form2显示在panel2中。Form2  中有 button2 。目的让Form3显示在panel3中
panel1 中有个button1下代码:
          Form2 form2 = new Form2();            form2 .TopLevel = false;            form2 .Parent = form1.Panel2;            form2 .Dock = DockStyle.Fill;
            splitContainer1.Panel2.Controls.Add(form2 );
            form2 .Show();
点击panel1 中button1,Form2 能显示在panel2中,同样意义的代码,设断点代码也是执行的  !!为什么点击Form2 中button2,Form3不能显示在panel3
中????????????????????????谢谢啦············郁闷好几天了
  

解决方案 »

  1.   

    你这个是点击button1可以显示Form2,点击button2无法显示Form3
    点击button2的时候你是在Form2操作的,但是你要显示的却要在Form1中的panel3中显示,这就有问题了,计算机此时只会在Form2中招panel3,但是找不到,当然如果你把panel3房在Form2中应该就没问题
      

  2.   

    你这个是点击button1可以显示Form2,点击button2无法显示Form3
    点击button2的时候你是在Form2操作的,但是你要显示的却要在Form1中的panel3中显示,这就有问题了,计算机此时只会在Form2中招panel3,但是找不到,当然如果你把panel3房在Form2中应该就没问题/
    谢谢!!!!!!能不能panel3就放在Form1中呢???
      

  3.   

    找一下form2的父窗口句柄,也就是form1再显示就可以了
      

  4.   

    是不是这句话错了??????
    splitContainer1.Panel2.Controls.Add(form3 );我的意思是,Panel2 中添加了 FROM3 !它肯定不会显示在 3 里面。那么代码也肯定执行,你在看下。这种情况大多都是出在 今代码复制时!
      

  5.   

    看你问了几次啦 ,给你写个吧 很简单的Form1  public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }    private void button1_Click(object sender, EventArgs e)
        {
          Form2 f2 = new Form2();
          f2.TopLevel = false;
          panel2.Controls.Add(f2);
          f2.OnClickButton += new EventHandler<EventArgs>(f2_OnClickButton);
          f2.Show();
        }    void f2_OnClickButton(object sender, EventArgs e)
        {
          Form3 f3 = new Form3();
          f3.TopLevel = false;
          panel3.Controls.Add(f3);
          f3.Show();
        }
      }
    Form2:代码  public partial class Form2 : Form
      {
        public Form2()
        {
          InitializeComponent();
        }    public event EventHandler<EventArgs> OnClickButton;    private void button2_Click(object sender, EventArgs e)
        {
          if (OnClickButton != null)
          {
            OnClickButton(sender, e);
          }
        }
      }
    //就这么多................
      

  6.   

    问题就是出在From2中根本找不到Form1中的panel3所以也可以这么做:
    Form1代码:  Form1上放了3个panel  public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }    private void button1_Click(object sender, EventArgs e)
        {
          Form2 f2 = new Form2();
          f2.TopLevel = false;
          f2.MyPanel3 = this.panel3;  //注意这里
          panel2.Controls.Add(f2);
          f2.Show();
        }
      }
    Form2代码:  public partial class Form2 : Form
      {
        public Form2()
        {
          InitializeComponent();
        }    //添加一个属性
        public Panel MyPanel3
        {
          get;
          set;
        }    private void button1_Click(object sender, EventArgs e)
        {
          Form3 f3 = new Form3();
          f3.TopLevel = false;
          f3.Dock = DockStyle.Fill;
          MyPanel3.Controls.Add(f3);
          f3.Show();
        }
      }