2013-04-07 60 views
5

嗨我的項目中有一些表單,我想要做一個關閉其中一個窗體的方法。 方法是:在C中使用方法關閉特定窗體#

public static void close_form (Form frm) 
{ 
    frm.Close(); 
} 

我使用這種方式:

public partial class myForm : Form 
{ 
    close_form(myForm); 
} 

但是當我想要運行的應用程序,我得到錯誤: myForm是一個「型」,而是使用像'variable'

我在做什麼錯?是否有另一種方式close窗體沒有使用this.close()

+0

你爲什麼避免直接調用'Close'方法? – 2013-04-07 12:51:13

回答

8

你逝去的形式,即myForm你需要傳遞類型的對象的類型,你可以通過this

public partial class myForm : Form 
{ 
    close_form(this); 
} 

這裏myForm是新類型,從Form類型繼承,而不是目前的表單實例。關鍵字this表示您可以將該類的當前實例傳遞給close_form,您可以閱讀關於此here的更多信息。

沒有原因調用一個函數,如果函數只是只有一個語句關閉窗體關閉窗體,除非你是通過函數做這行的學習,或者你可能有一些原因關閉報表,如記錄一些信息,如關閉表格名稱和時間等。您只需撥打this.Close而不是調用close_form並將當前表單傳遞給它。

+0

當然,它完全不清楚爲什麼這比'this.Close()'更好。 – 2013-04-07 12:50:53

+0

你是對的顯然沒有理由關閉窗體,而不是使用this.Close,但IMO close_form是一個靜態方法,可以從其他類/窗體調用,並可以執行一些常見的過程,如日誌記錄。 – Adil 2013-04-07 12:55:56