MDIContainer Pass переменная и одно окно - PullRequest
0 голосов
/ 11 августа 2011

i
Hallo,
m с использованием MDIContainer.
1. Как я могу передать varaible от родителя к ребенку?
2.Как я могу запретить открывать более 1 окна с одним и тем же именем (это означает, что в моем MenuStrip есть Ordre, Tarif, Config ... когда пользователь уже открывает Ordre, когда он снова щелкает по панели меню, он не открывается новое окно / создал нового потомка, но указал на уже открывшееся окно ordre)?

Спасибо раньше.

1 Ответ

2 голосов
/ 11 августа 2011

Создайте приватного, защищенного или открытого члена в вашем окне mdicontainer:

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 и метод в дочернем элементе для создания связи с переменной и хранения копии внутри дочернего элемента.

Это полезно для родительского элемента в дочернем элементе,но это должно быть реализовано по-разному для родителей для многих детей с синхронизацией.

...