c#中如何让多个panel在一个form窗体中显示?
如果这些panel是叠在一起的,也就是location和size的值是一样的时候,
可以用panel.BringToFront()和panel1.SendToBack()控制怎样设置呢?谢谢

解决方案 »

  1.   

    点击不同button时,显示不同panel
      

  2.   

    要显示某panel 就那panel 的对象.BringToFront();
    其他就不用SendToBack
      

  3.   

    我觉得调用BringToFront()就可以了,需要谁就把谁提前,调用SendToBack()意义不大,因为推后之后要显示哪个panel并不确定
      

  4.   


    Panel p1 = new Panel();
            Panel p2 = new Panel();
            Panel p3 = new Panel();
            private void Form3_Load(object sender, EventArgs e)
            {
                SplitContainer splitContainer1 = new SplitContainer();
                splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
                splitContainer1.Location = new System.Drawing.Point(0, 0);
                splitContainer1.Name = "splitContainer1";            p1.BackColor = Color.Red;
                p1.Dock = DockStyle.Fill;
                splitContainer1.Panel2.Controls.Add(p1);
                p2.BackColor = Color.Black;
                p2.Dock = DockStyle.Fill;
                splitContainer1.Panel2.Controls.Add(p2);
                p3.Dock = DockStyle.Fill;
                p3.BackColor = Color.Blue;
                splitContainer1.Panel2.Controls.Add(p3);            Button b1 = new Button();
                b1.Text = "p1";
                b1.Click += new EventHandler(button1_Click);
                b1.Location = new Point(0, 20);
                splitContainer1.Panel1.Controls.Add(b1);            Button b2 = new Button();
                b2.Text = "p2";
                b2.Click += new EventHandler(button2_Click);
                b2.Location = new Point(0, 50);
                splitContainer1.Panel1.Controls.Add(b2);            Button b3 = new Button();
                b3.Text = "p3";
                b3.Click += new EventHandler(button3_Click);
                b3.Location = new Point(0, 80);
                splitContainer1.Panel1.Controls.Add(b3);            splitContainer1.Dock = DockStyle.Fill;
                this.Controls.Add(splitContainer1);
            }        private void button1_Click(object sender, EventArgs e)
            {
                p1.BringToFront();
            }        private void button2_Click(object sender, EventArgs e)
            {
                p2.BringToFront();
            }        private void button3_Click(object sender, EventArgs e)
            {
                p3.BringToFront();
            }
      

  5.   

    注册Form3_Load事件然后拷贝代码后直接运行