我有一个MDI form (mf)里面有菜单和toolbar.toolbar上面有几个按钮分别打开child form(cf1,cf2,cf3)奇怪的是我打开任何一个cf,mf的菜单就显示不出来了。其显示结果就是toolbar往上挪了一些,占据了菜单的位置。如果把所有的cf关闭,菜单又变回来了。然后我就错测试了,我又加了一个按钮和一个新的child form。这个按钮就不出问题,但是其他的都出问题。具体情况是这样的: toolbar,以及cf1,cf2,cf3先写好的,我想加点东西才用到菜单。加了菜单后就出上面的怪现象了。然后我加测试按钮和新form,测试的这个部分没有问题。
cf1,cf2,cf3,都没有在formload,formresize里面有代码。各位分析一下,谢谢希望我的表述清晰。

解决方案 »

  1.   

    我刚发完就知道为什么出现这种情况了。原因是cf1,cf2,cf3中含有各自的popup menu。
    但是如何保留mf中的菜单不让它消失呢。
    因为我需要用里面的widowlist功能,在cf1,cf2,cf3中作切换谢谢
      

  2.   

    cf1,cf2,cf3中含有各自的popup menu,但是如何保留mf中的菜单不让它消失呢。
    --------------------------------------------------
    只能把子窗体的菜单去掉,把这些popup menu都放在主窗体里,
      

  3.   

    还有一种纯 VB 的方案:
    可以将子窗体的菜单设计到 UserControl 中,将 UserControl 已 Visible = False 的方式放在子窗体上;
    UserControl 的唯一方法就是 PopupMenu,然后通过自定义事件的方式将菜单的 Click 通知到子窗体。
      

  4.   

    可以创建一个没有菜单的非常小的子窗体(长度、宽度都为10左右),然后放在某个角落上。
    然后在toolbar中添加一个显示MDI菜单的按钮,当单击该按钮时执行  "子窗体.setfocus"
    这样可以显示MDI菜单,但是得在Toolbar中加个按钮 呵呵
      

  5.   

    对了,不需要单独的按钮。
    其实可以把“子窗体.setfocus”命令放到MDIForm_Click事件中。
    这样只要单击主界面的空白处就可以显示主菜单。
      

  6.   

    反正MDI就是麻烦,我是不敢轻易去碰它