2009-12-19 115 views
0

我想在窗體上聲明爲全局變量,然後在應用程序中使用。我不想使用下面的方法訪問應用程序窗體。聲明全局表格

Form1 myForm = new Form1(); 

任何人有什麼想法?

感謝

+0

爲什麼不呢? _______ – Nifle 2009-12-19 15:19:31

+1

我有一個想法。不要這樣做。全局變量是邪惡的。 – Marek 2009-12-19 15:19:59

+1

你想達到什麼目的?可能比將整個表單全局化更好。 – keyboardP 2009-12-19 15:20:58

回答

3

看起來像你想要你的表格是Singleton,這不是我最喜歡的模式,但它擊敗了全球。

+0

只要您隱藏並不關閉窗體,單身人員就會執行此操作。但的確,比全球更好。 – 2009-12-19 16:31:50

+0

亨克是正確的。調用關閉會導致表單被處理,這意味着您必須重新創建它才能再次顯示,這將打破單例的目的。 我同意其他海報提出的整個想法可能不好,但如果你有一個很好的理由,它可以做到。 – 2009-12-19 16:59:41

0

我的方式宣佈其具有靜態變量Form1的靜態類。

public static class Global 
{ 
    private static Form1 myForm = new Form1(); 
    public static bool Show() 
    { 

     myForm.Show(); 
    } 

    public static bool Hide() 
    { 
     myForm.Close(); 
    } 
} 

這不是好方法嗎?

+0

不是。當用戶關閉表單時,此代碼將會彈出。如果你阻止用戶關閉表單,這是永久性的內存泄漏。你爲什麼需要這個? – 2009-12-19 16:26:14

+0

您必須確保Close()永遠不會被調用,因爲這會處理表單。 – 2009-12-19 17:02:04

+0

nobugz:我需要這個,因爲我想每次顯示/隱藏Form1。傑森:謝謝,我改變了近乎隱藏。 – Sadegh 2009-12-19 17:44:52