C# WinForm子窗体显示(被父窗体控件挡住解决)

父窗体属性isMdiContainer=true(右图visual studio直接改),并在子窗体打开事件中如下所写,昨天还正常,今天打开子窗体发现,子窗体没弹出来,最后发现被挡在了父窗体控件下面。

            try
            {
                  Form1 frm = new Form1();
                  frm.MdiParent = this;//父容器为主窗体
                  frm.Show();
            }
            catch
            {
                MessageBox.Show("打开失败!");
            }

最后两种办法解决,

  • 1.子窗体显示在父窗体控件之上

我写的父窗体所有控件都在panel容器控件里,所以让子窗体显示在panel上面就ok

            try
            {
                Form frm = new Form();
                frm.TopLevel = false;//设置它的顶级为false
                frm.Parent = this.panel1;    //设置子窗体的父容器控件是panel控件                
                frm.Show();
                frm.BringToFront();//设置子窗体在最上面
            }
            catch
            {
                MessageBox.Show("打开失败!");
            }
  • 2.子窗体作为控件内嵌到mdi主窗体panel控件上
            try
            {
                Form frm = new Form();
                frm.TopLevel = false;//设置它的顶级为false
                panel1.Controls.Add(frm);  //设置panel控件中控件集合应该包括frm子窗体 
                frm.Show();
            }
            catch
            {
                MessageBox.Show("打开失败!");
            }

 

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值