打开Excel,我们发现Excel的每个Sheet里面并没有任何的功能操作按钮或菜单,但是我们仍然能对每个sheet进行各种操作,这些操作都可以 由上面的功能菜单来实现。对于MDI形式的界面,从某种程度上来看,就很类似一个Excel Application,那能不能实现像Excel Application那样的功能操作呢?
要实现那样的功能操作,有几个问题需要解决:
(1)MDI父界面能调用到MDI子界面的功能
(2)MDI子界面对通过一个功能,能不同实现
(3)MDI子窗口可以实现对父窗口的控件控制(扩展功能)
界面实现的形式如下:
上面是一般菜单,下面是通用功能按钮。每个按钮都可以实现子窗口的功能,通俗的说就是“不用你来调用我,只需我来调用你”(比较类似于观察者模式)。当然实现这中设计,每个子界面的功能要有很大的相似性才比较好,否则最好不要这样设计。
我们知道,在.net的方法调用中,如果是非静态的方法,需要先实例化类的对象,然后才能调用类的方法,如果是静态方法,也是需要知道具体的类才能调用其 方法。如果在MDI父窗口的功能要调用MDI子窗口的功能,是否需要实例化每个MDI子窗口的对象才能调用其方法呢?在.net