2011-08-11 99 views
-1

i
Hallo,
m使用MDIContainer。
1.我怎樣才能將變化從父母傳遞給孩子?
2.如何禁止以相同的名稱打開多個窗口(這意味着在我的MenuStrip中有Ordre,Tarif,Config ...當用戶已經打開Ordre時,當他再次點擊菜單欄時,它不打開一個新窗口/創建一個新的孩子,但指向已打開的ordre窗口)?MDIContainer通過變量和一個窗口

Thanx before。

回答

2

在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父級中的屬性,以及用於在變量上進行通信並在子內部存儲副本的子方法。

這對於父母對孩子很有用,但是它應該以不同的方式用於許多具有同步的孩子的父母。

+0

請求您回覆。 我使用通過構造函數傳遞。 public Lordre() { InitializeComponent(); } public Lordre(string ClientID) { InitializeComponent(); lbl_Err.Text =「qdsf」+ ClientID; }
我想知道Program.cs中是否有一個通用變量。這意味着一旦我把它,我可以從任何形式回收價值。 – user609511

+0

您可以爲此創建一個靜態類,而不是Program.cs中的全局變量。 – Rolice