我一个程序有很多form,都共一个父容器panel。我用的是这样的语句来展现一个新form的
form.show();
form.BringToFront();
即用新一个form去盖住旧的form,我现在想触发一个事件,就是当旧的form被新的form盖住的时候,旧的form直接关闭,请问我应该用什么事件?

解决方案 »

  1.   

    记录一下当前form,那么在切换时,直接关闭当前
      

  2.   

    hide() 父窗体不能直接关闭 只能隐藏
      

  3.   

    有点想法   不知道是不是楼主的意思   foreach (Form frm in Application.OpenForms) 这个能遍历所有打开的窗口  
      

  4.   

    如果真的要这样做,那么你就设置窗体的visable属性触发窗体的visable_Change事件
      

  5.   

    用close()方法吧 除了主form别关闭,其他的form都可以关闭的
      

  6.   

    打开新窗口时 记录旧的窗口名 事件触发旧的窗口.close()
      

  7.   

    楼主试试这样是否符合你想要的效果?            this.panel.Controls.Clear();
                
                FrmChild  frmChild1 = new FrmChild();
                frmChild1.TopLevel     = false;                                 //顶级控件不能添加到控件中
                frmChild1.Dock         = DockStyle.Fill;
                
                this.panel.Controls.Add(frmChild1);                            // 动态添加子画面物料库至主画面的Panel中
                frmChild1.Show();
      

  8.   

    我不太确定,因为从表面上看不出来区别。其实我是在一个form中嵌入了一个windows media player,但是试了你的方式,打开另一个form的时候,前一个form中的windows media player中的视频的声音还在,那应该是说明没有关掉
      

  9.   

    那form被盖住的时候visible改变了吗?
      

  10.   

    如果是FORM调用FORM, 主form只能hide,否则你没法返回,如果你一定要关闭,就用me.colse你可以在被调用的dispose事件(和LOAD相反)中写: 主form.show()这样做简单,也不会占用内存
      

  11.   

    我有点纳闷,为什么要用新一个form去盖住旧的form?你用什么事件打开那个新的form的?在那个事件中,直接把旧的close了,然后open 新的不行?
    我的理解有误区?
      

  12.   

    Show 表示重新构建并显示
    clos 关闭..前面写入关闭对象
      

  13.   

    获取下childforms,判断isactive,不是当前激活的close()
      

  14.   

    我说明一下,我编程是新手,所以我的问题可能很简单但是你们把它想复杂了。打个比方,我有10个button,每个button对应一个form,点一个button其对应的form就show出来,而10个form的展现出来的时候的位置大小都是一样的。我现在要做的就是在一个新form展现出来的时候关闭掉旧的form,但由于我不知道旧的form是哪个form,(因为10个button对应的form是平等的,都可以相互覆盖)所以我不知道该怎么样去关闭它。
      

  15.   

    是的,直接关闭就可以了,但是由于不知道之前打开的form是哪个form,所以我不知道该怎么样去关闭它,求指教
      

  16.   

    在跳出另外一个窗体的按钮最后加上this.close()  不知道对不对啊第一次回答。
      

  17.   

    那不就相当于把新打开的form关了么?
      

  18.   


    如果只是要关闭,你可以在10个button的窗口加个比如 lastForm 来记录上一次的窗口,然后在每个按钮事件里关闭lastForm ;如果还有其他功能,那就得用列表来来存 activeFormList
      

  19.   

    是按钮里面,不是其他地方按钮里面写 this.close的话就是关闭当前From啊。