VB程序中,有一个主窗体frmmain,主窗体中各级菜单对应有相应的子窗体,其中,子窗体每次只能打开一个(即打开新的子窗体的时候,原先的子窗体自动关闭),请问如何在打开一个子窗体(随机打开)后,单击主窗体上的command1的同时,子窗体上的command2也响应click事件?

解决方案 »

  1.   

    在单击主窗体上的command1的同时调用子窗体上的command2内的函数(command2事件内代码写成一个函数)
      

  2.   

    如果要求每个子窗体都要在被显示时能与主窗体联动,那么子窗体需要有相同的接口.简单来说,就是要调用相同的方法....即保证每个子窗体都有command2这个对象.那代码就很简单:function callClick(ByRef x as form)
        x.command2.value=true    '哪个显示,就传入哪个
        '还可以在这里做更多的事
    end function你显示子窗体的代码那里,肯定是已经得到了子窗体这个对象的,在那时调用一下这个函数即可,参数就是要显示的那个窗体对象.其实不封装也是可以的,但封装一下利于结构化.
      

  3.   

    1、在子窗體,把Command2的事件設為全局事件,如下:
      public sub Command2_Click()
        end sub
    2、在主窗體上點擊Command1事件中加上下列語句:
        call forms(1).Command2_Click
       這樣,在執行完本身事件後,會去調用你打開子窗體上的Command2事件。
      

  4.   

    楼上的麻烦,还要把 所有子窗口的command_click 的改成 public,
    还是 。value = true 简单