主窗体初始化后,需要有一个背景页,可以在该背景页上添加扩展的功能。所以决定将背景页做成是一个子窗体(Form2),该子窗体大小刚好是容器的大小(即MDI窗体灰色的部分),并且该窗体始终在最底(以防挡住了其他的子窗体)。请教:怎么将该背景页置于最底层,既是不管什么情况下,该MDI子窗体(Form2)始终在最底层,不能挡住其他子窗体。注:我试过在Show出其它子窗体FormN.show()时,设置背景窗体的this.Enabled = false,在FormN关闭时再把Form2的Enabled改回true。但这样做有两个问题1.打开一个扩展功能的窗体(FormN1)后,如果不关闭当前窗体,就不能再打开其它窗体了。2.当FormN关闭的时候,背景窗体(Form2)会闪烁一大半天,很卡!请问哪位前辈有做过类似的项目的,指教指教,谢谢!!!!

解决方案 »

  1.   

    你做一个IsMdiContainer为true的窗体Form1为主窗体,
    然后将你要做背景的Form2窗体show出来,它的MdiParent=this;这样你再开其他窗体出来,Form2因为是第一个show的所以一直在最下面
      

  2.   

    貌似mdi父窗体可以加背景的……
      

  3.   

    最好是直接做在parent上面,背景什么的也是可以做的!
    如果一定要是自创地置底的话,可以这样试试
     f.SendToBack();
     f.Enabled = false;
    然后设置下大小
      

  4.   

    直接设置TOP属性就可以了 
    如果你想改大小和位置就设置TOP,Left, Width, Height. 例如, 
    private void toBottomToolStripMenuItem_Click(object sender, EventArgs e) 
            { 
                this.ActiveMdiChild.Top = this.Height - this.ActiveMdiChild.Height; 
            } 
      

  5.   


    这样做只要点击一下Form2,其它子窗体就挡住了。我想要:不管什么情况下,Form2都在最底层,包括点击Form2也不要让它置顶。
      

  6.   

      protected override void OnActivated(EventArgs e)
            {
                SendToBack();
            } 
      

  7.   


    还是这个办法好,简单,快捷。不过我是写在Enter事件里。结贴了!