2015-10-19 25 views
-1

我幾乎完成了使用WinForms與VS2012進行Connect4遊戲的工作。一切正常,但我想在專用的開始菜單窗口中爲用戶提供選項。在那個菜單上,我有兩個組合框,我需要將文本從我的其他窗體(遊戲窗口)中用作兩個變量的值。如果可能的話,我還有一個新遊戲按鈕應該從我的其他窗體調用一個方法(基本上,我在遊戲窗體中創建了一個「初始化()」方法,並且希望在點擊「新建遊戲「按鈕在其他表格上)。想要從一個表單中獲取數據以將其用作另一個表單中的變量

我只找到了一些教程,展示瞭如何從一種形式到另一種形式(如標籤文本)做非常基本的事情,但我沒有找到我的具體問題的答案。

我用這個在我的主要形式,以實例化菜單形式

public FormMenu myMenu; 
myMenu = new FormMenu(); 

我想要做的是,我可以做的另一種形式是這樣的:

amountOfRows = Int32.Parse(myMenu.comboBoxRows.Text); 
amountOfColumns = Int32.Parse(myMenu.comboBoxColumns.Text); 

任何想法我怎麼能做到這一點?

+1

嗨,@Morgoth。首先,歡迎來到StackOverflow ...注意,通常問題應該總是附加一些代碼。現在不可能提出一個好的方法,因爲我們不知道你的代碼是什麼樣的。有很多解決方案,最簡單的方法是在兩個表單都可以訪問的類中使用靜態變量。 – SpaceSteak

+0

thx爲您的答案。我在原始文章中添加了一些代碼,以更具體地說明我想要做什麼。 – Morgoth

+0

只要在範圍內,您可以訪問FormMenu的公共成員。這比在父類中使用靜態變量稍微複雜一點,但它稍微好一點。 formMenuInstance.someMember會給你的會員 – SpaceSteak

回答

0

我很想看到一些示例代碼,所以我可以幫助看看你的困惑在哪裏。 WinForms要求其他表單被實例化。

OtherForm form = new OtherForm(); 

一旦表單被實例化,您應該能夠從中運行代碼。

編輯:

根據您的實現,我建議做返回這些詮釋值範圍內FormMenu公共方法。

public int ReturnRows() 
{ 
    return Int32.Parse(myMenu.comboBoxRows.Text); 
} 

public int ReturnColumns() 
{ 
    return Int32.Parse(myMenu.comboBoxColumns.Text); 
} 

然後從其中MYMENU被實例化,你可以調用myMenu.ReturnRows()和myMenu.ReturnColumns()

+0

對不起,無法立即添加代碼。事實上,因爲我不知道該怎麼做,所以我沒有很多與這個特定問題相關的代碼。我已經在我的遊戲窗體(我的主窗體)中實例化了菜單窗體,但從那裏我不知道如何做我想做的事(我在第一篇文章中解釋過)。我用我用來實例化的短代碼編輯了我的第一篇文章。 – Morgoth

+0

謝謝,你的編輯部分的方法就像一個魅力! – Morgoth

0

最簡單的方法是給你的窗體的引用存儲在menue其他形式作爲一個變量。 (你已經將它命名爲myMenu

然後,你應該在表單中爲值添加一個setter來創建你需要的屬性/屬性。 (見例如here

最後你

myMenu.property = newvalue; 

That`s更新表單字段所有關於它

相關問題