C#MDI父窗体背景另类方案

MDI父窗体加背景图,在网上有大量的代码,大都是在MdiClient里加绘制命令。在实际使用中发现这种方法效果不错,但有一定限制,比如,只能加背景图片,背景色,加点文字提示或者其它控件就没有办法了(Controls.Add试过,不好用,或许有其他办法,但我没找到)
于是想到一个变通的办法,加MDI子窗体,并保持{zd0}化,且位置永远在{zd2}层,操作过程如下:
1。新建一窗体,命名为frmBack,为保证显示效果,Text设为空,ControlBox设为无,ShowIcon,ShowInTaskBar设为false;FormBorderStyle设为无(这样{zd0}化后与父窗体无缝结合),在窗体上设置背景图,加控件,随心所欲地设置吧。。。。。。。。。(加背景图的话注意BackImageLayOut属性)
2。在父窗体LOAD事件处理程序里加如下代码(openMDI代码参考)
            //显示背景
            frmBack frmb = new frmBack();
            frmmain.openMDI(frmb, true);
            frmb.Dock = DockStyle.Fill;
3.在父窗体的    MdiChildActivate事件代码里加如下列代码:
        {
            if(this.ActiveMdiChild.Name=="frmBack")
                foreach (Form f in this.MdiChildren)
                    if (f.Name != "frmBack") f.Activate();//或f.BringToFront();
        }

原理分析:

1。通过dock设为Fill使其自动布满父窗体。
2。当被xx时自动逐个xx其他窗体,使其他窗体自动到前层。



郑重声明:资讯 【C#MDI父窗体背景另类方案】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——