2013-01-10 81 views

回答

4

如果馬修·沃森的回答是不是你追求的...

如果你只是想你的「全局」的變量設置爲一個特定的MDI父窗體的兒童使用,那麼就使用一個普通它的實例屬性。孩子們可以通過child.MdiParent.MyVariable(在將MdiParent轉換爲適當的類型之後)訪問它。例如:

class ParentForm 
{ 
    public int MyVariable 
    { 
     return 1; 
    } 
} 

class ChildForm 
{ 
    public void MyMethod() 
    { 
     var parent = this.MdiParent as ParentForm; 
     foo = parent.MyVariable; 
    } 
} 

快速注意:這是一般最好避免使用「全局」變量(即靜態字段/屬性)儘可能多地。將程序狀態的所有不同部分限制在適當的上下文中以減少耦合。請參閱Law of Demeter

+0

你們都對,夥計們。謝謝! :) – Sonhja

+0

@Sonhja看到我的更新的一些使用全局變量的意見! –

+0

謝謝,但這是一個快速的應用程序,我需要一個全球用戶;)但是,謝謝! – Sonhja

2

C#中的全局變量實際上是一個靜態字段或屬性。

所以只是一個公共靜態屬性添加到的MdiParent:

public static int MyGlobalInt 
{ 
    get 
    { 
     return 42; 
    } 
} 

這將的MdiParent的所有實例之間共享。如果這不是你的意思,那麼它不是你想要的全球。

+0

你是對的,但如果我把它作爲靜態的,它不是全局的。 – Sonhja