2017-06-19 26 views
0

我只是改變了我的修改菜單進入公衆現在我得到這個如何在Forms中提供靜態方法?

「CS0120的對象引用需要非靜態字段,方法或屬性「HomeForm.checkBeamToolStripMenuItem」

怎麼辦我在編碼中提供靜態方法?在此先感謝

我的代碼是:

private void AnalysisForm_FormClosing(object sender, EventArgs e) 
{ 
    HomeForm.checkBeamToolStripMenuItem.Enabled = true; 
} 
+0

是在單獨的項目中定義的HomeForm和AnalysisForm?如果是,則需要在初始化期間將被調用表單(例如HomeForm)的實例傳遞給調用表單(AnalysisForm)。 –

+0

如果HomeForm在創建AnalysisForm **時打開AnalysisForm,然後直接連接並在HomeForm中創建AnalysisForm **的FormClosed()事件,並且您不需要傳遞任何引用。 –

回答

0

你正在犯一個典型的錯誤,似乎使一噸的類似的問題在這裏StackOverflow上是如何從其它引用一個形式。 (在這裏搜索stackoverflow,你會發現很多變化如何做到這一點)

但基本思路要做到這一點是你需要一個對象引用到其他形式。你想要做的是訪問不是對象的類「HomeForm」。

因此,在您創建表單的地方,您需要做的是將對象引用傳遞給分析表單,以便您可以告訴它做些事情。儘管如此,我會爲自己做很大的改變,開始在變形中創建一個方法,而不是訪問它的控件。