Winform实现在panel中加载子窗体

在Winform项目中,经常用到的就是在容器中加载子窗体,以panel容器为例,在panel中加载子窗体

方法一:通过给panel加载子元素实现

Form2 form = new Form2();

form.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小花,最大化,关闭等按钮)

form.TopLevel = false; //指示子窗体非顶级窗体

this.panel1.Controls.Add(form);//将子窗体载入panel

form.Show();

方法二:指定父容器实现

Form2 form=new Form2();

form.MdiParent=this;//指定当前窗体为顶级Mdi窗体

form.Parent=this.Panel1;//指定子窗体的父容器为

Frm.FormBorderStyle = FormBorderStyle.None;//隐藏子窗体边框,当然也可以在子窗体的窗体加载事件中实现

form.Show();

在实际项目中应用如下:

   private void btnFrm1_Click(object sender, EventArgs e)
   {
       Button btn = sender as Button;
       showForm(btn);
   }

   private void btnFrm2_Click(object sender, EventArgs e)
   {
       Button btn = sender as Button;
       showForm(btn);
   }

   private void btnFrm3_Click(object sender, EventArgs e)
   {
       Button btn = sender as Button;
       showForm(btn);
   }

   private void showForm(Button btn)
   {
       switch (btn.Name) 
       {
           case "btnFrm1":
               Form1 form1 = new Form1();
               showChildForm(form1);
               break;
           case "btnFrm2":
               Form2 form2 = new Form2();
               showChildForm(form2);
               break;
           case "btnFrm3":
               Form3 form3 = new Form3();
               showChildForm(form3);
               break;
       }
   }

   private void showChildForm(Form form)
   {
       if (this.ActiveMdiChild == form) return;

       this.panel1.Controls.Clear();
       form.TopLevel = false;   
       form.Parent = this.panel1; 
       form.FormBorderStyle = FormBorderStyle.None;   // 设置取消边框
       form.Dock = DockStyle.Fill;       // 设置填充容器
       form.Size = this.panel1.Size;    //  设置以父容器Size为子窗体的Size
       form.Show();
   }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值