你的想法很普遍,因为程序做的好就是要界面干净,按钮少,控件少。
 把很多子窗口上的公用按钮放到mdi父窗体上, 很多程序都是这样做的。
 我的思路:
    1 关键是多用screen对象,通过它就可以知道是哪个窗口点击了mdi窗口上的 
      toolbar按钮
    2. 可以把当前窗口的很多过程函数命名为public ,这样在mdi窗口中就可以 
       调用。 例如有窗口frma,里面有一段数据保存过程 s_save,把它声明成
       public,当在窗口frma上输入数据后,点击mdi窗口的保存按钮保存数据
       保存按钮的代码可以这样写:       dim ofrm as form
       set ofrm as screen.activeform
       ofrm.s_save     '( 建议每个窗口的保存数据过程都命名成s_save) 
 
      否则要这样写:      dim ofrm as form
       set ofrm as screen.activeform
       select case ofrm.name
              case "frma" 
                    frma.s_save  
              case "frmb" 
              ....              case "frmc" 
              ....              case "frmd" 
              ....
              ....
              ....       end select      
   

解决方案 »

  1.   

    如果工具栏要是能像菜单一样自动的到MDI窗体上就好了
      

  2.   

    已经搞定了!其实我自己的思路还是对的,之所以出现子窗体frm1打开一个VBModal型窗口时,工具栏变成frmMain的工具栏而不是frm1的工具栏,是因为我在frmMain里面设置了MDIForm_Activate事件,在此事件里面我调用了frmMain.InitTool,只要将frmMain.InitTool放到MDIForm_Load中就可以了