已经实现了将MDI子窗口动态的添加到Menu列表中了,但是子窗口中都有关闭提示(FormClosing中写有提示代码),如果点击否则MDI子窗体没有关闭,但是Menu中的列表中该子窗体标签不见了,期待您的解决!

解决方案 »

  1.   

    你代码写错了呗从主窗口的MIDFORMS里面可以找到所有的子窗口
      

  2.   

    vb.net 代码: For Each frm As Form In Application.OpenForms
                    If frm.Name = "你要的窗体名" Then 
                       '你要执行的代码
                    End If
                Next
      

  3.   

    使用委托,就可以,
    子窗体public delegate void ExitFormHandler(string name);public event ExitFormHandler ExitForm;private void ChildForm_FormClosed(object sender, FormClosedEventArgs e)
    {
            if (ExitForm!= null)
                    ExitForm(this.Name);
    }主窗体ChildForm.ExitForm += new ChildForm.ExitForm(ChildForm_ExitForm);private void ChildForm_ExitForm(string name)
    {
            ///这里执行你的业务逻辑,去掉Menu
    }
      

  4.   

    mdmzl 的方法:For Each frm As Form In Application.OpenForms指的是所有的打开窗口只有用 主窗口的子窗口列表才能得到真正的MDI窗口
      

  5.   

    我的意思大家似乎还没有明天,可能是我说的不够清楚吧。就是在点击MDI子窗口的关闭按钮在子窗体formclosing中使用e.cancel=true,但是Mene中的下拉菜单中改子窗口的Name标签消失,点击否后我不想让子窗口的Name标签消失,我使用了MDI窗体的水平平铺,和垂直平铺,打开一个MDI子窗口就自动添加到Mene中的下拉菜单中,并且点击子窗口的Name标签就可用打开改子窗口。请大家继续!
      

  6.   

    我的意思大家似乎还没有明白,可能是我说的不够清楚吧。就是在点击MDI子窗口的关闭按钮在子窗体formclosing中使用e.cancel=false,但是Mene中的下拉菜单中改子窗口的Name标签消失,点击否后我不想让子窗口的Name标签消失,我使用了MDI窗体的水平平铺,和垂直平铺,打开一个MDI子窗口就自动添加到Mene中的下拉菜单中,并且点击子窗口的Name标签就可用打开改子窗口。请大家继续!
      

  7.   

    我给你的函数不能用吗?你稍微改下,在加一个布尔类型的参数,在formclosing调用这个函数,然后把e.cancel当作参数传回主窗体,后面不是就ok了?
      

  8.   

    我使用了MdiWindowListItem属性。
      

  9.   

    我这个程序是有判断窗口中的内容是否修改了的,所以三个项YES NO 需要有. 我点取消后(e.Cancel = false)窗口列表项没理由会消失的,因为并没有关闭成功,窗口都还在.
      

  10.   

    关键代码就是:
    1、窗体水平平铺
    this.LayoutMdi(MdiLayout.TileHorizontal);  2、垂直平铺
    this.LayoutMdi(MdiLayout.TileVertical );  3、层叠平铺
    this.LayoutMdi(MdiLayout.Cascade ); 子窗体自动添加到DropeDownItems中,单击Items可以激活相应的子窗体,但是关闭子窗体,弹出对话框,点击取消后,DropeDownItems中没有该窗体的items了,期待解决!
      

  11.   

    DropeDownItems 是那个控件的?
    怎么自动加进去的?
      

  12.   

    设置这个MdiWindowListItem属性就可以了。
      

  13.   

    http://hi.baidu.com/wenjunlin/blog/item/f8997cf31119415d342acc21.html
    综合上面的内容和这个网址就可以明白了
      

  14.   

    恩,我明白了,你这个是个BUG
    http://connect.microsoft.com/VisualStudio/feedback/details/250890/when-close-is-cancelled-on-mdi-child-window-and-it-is-hidden-mdi-parents-window-never-shows-it-again微软没有给出解决办法你不能用MdiWindowListItem来处理这个问题