我遇到了從我的主窗體傳遞字符串到名爲unlockForm的另一個窗體的問題。以另一種形式從主窗體獲取字符串的正確方法是什麼? C#
在我的MainForm我創建的每一個串像這樣
public string race
{
get;set;
}
我一直在試圖從unlockForm訪問它們,而是創造這樣
mainForm mainScreen = new mainForm();
unlockRace = mainform.race;
一個新的MainForm給了我一個StackOverflowException第一行是未處理的錯誤。
我在主窗體中創建新窗體時沒有遇到這個問題,所以我想知道正確的方法是什麼。
編輯:
這裏是整個代碼通過@deathismyfriend
的要求這是MainForm的構造
public mainForm()
{
InitializeComponent();
}
這是在更新比賽串MainForm中的代碼。
public string race
{
get;set;
}
private void raceUpdate(object sender, EventArgs e)
{
if (raceBox.Text == "Human")
{
if (infoText != humanText)
{
infoText = humanText;
infoboxUpdate(sender, e);
}
}
else if (raceBox.Text == "Troll")
{
if (infoText != trollText)
{
infoText = trollText;
infoboxUpdate(sender, e);
}
}
race = raceBox.Text;
if (race == "")
{
race = "Unspecified";
}
}
這裏是我的unlockForm
public unlockForm()
{
InitializeComponent();
getStats();
}
mainForm mainScreen = new mainForm();
private void getStats()
{
race = mainScreen.race;
}
編輯#2的代碼:
即使當我做我的unlockForm以下代碼
public unlockForm()
{
InitializeComponent();
//getStats();
}
mainForm mainScreen = new mainForm();
我仍然收到錯誤
你永遠不調用它之前設置的比賽。 – deathismyfriend
即使我刪除了呼叫競賽,我仍然收到錯誤 – Fuzzyketchup
您需要在調用它之前設置mainform.race。 – deathismyfriend