容器传递变量和一个窗口

本文关键字:一个 窗口 变量 | 更新日期: 2023-09-27 18:05:23

i
你好,
我正在使用mdiccontainer
1. 如何将变量从父级传递到子级?
2.我怎么能禁止打开超过1个窗口与相同的名称(这意味着在我的菜单栏有订单,关税,配置…当用户已经打开订单时,当他再次单击菜单栏订单时,它不是打开一个新窗口/创建一个新的子窗口,而是指向已经打开的订单窗口?

谢谢。

容器传递变量和一个窗口

在mdiccontainer窗口中创建私有、受保护或公共成员:

class MyMdiContainer : Form
{
    private object m_var;
    // Property approach
    public object MyVar
    {
        get { return m_var; }
        set { m_var = value; }
    }
}

下面是mdi子节点:

class MyMdiChild : Form
{
    private object m_childVar;
    void Communicate()
    {
        // Read variable
        this.m_childVar = ((MyMdiContainer) this.MDIParent).MyVar;
        ((MyMdiContainer) this.MDIParent).MyVar = "Child Foo";
    }
}

在上面的例子中,我们使用了两个字段,每个字段对应两个类,属性用于在MDI父类中存储var,子类中的方法用于在变量上进行通信并在子类中存储副本。

这对于父级到子级是有用的,但是对于同步的父级到多个子级应该以不同的方式实现。