2017-04-09 104 views
0

此處的提交按鈕應該檢查輸入到文本框中的答案是否與列表框中的正確答案匹配,除了列表框(每個列表框爲2個'學科')。我如何讓它適用於這兩種類型的問題,而不會在第二種類型上出錯(在這種情況下,第二種if語句的錯誤)?註釋部分是我嘗試去做的第二種方式。在多個if語句中比較多個列表框

private void btnSubmit_Click(object sender, EventArgs e) 
{ 
    if (lsbMathAns.SelectedItem.ToString() == txtAnswer.Text) 
     MessageBox.Show("Correct answer. Well Done!", "Great Job!"); 
    else if 
     (lsbGeoAns.SelectedItem.ToString() == txtAnswer.Text) 
     MessageBox.Show("Correct answer. Well Done!", "Great Job!"); 


    //if (this.txtAnswer.Text.ToLower() == this.lsbGeoAns.SelectedItem.ToString().ToLower()) 
    // MessageBox.Show("Correct answer. Well Done!", "Great Job!"); 
    //else 
    // MessageBox.Show("Sorry. Try Again...", "Wrong Answer"); 
    //if (this.txtAnswer.Text == this.lsbMathAns.SelectedItem.ToString()) 
    // MessageBox.Show("Correct answer. Well Done!", "Great Job!"); 
    //else 
    // MessageBox.Show("Sorry. Try Again...", "Wrong Answer"); 
+0

目前還不清楚是什麼你正在嘗試做的。如果用戶應該在'txtAnswer'框中打字回答第一個問題,爲什麼會被允許爲他們提供與'lsbGeoAns'不勝枚舉的答案嗎?你可以在單個if中使用'||'來實現,但它看起來並不是真的是正確的UI。您需要確保您知道用戶應該回答哪個問題,並將用戶的答案與該問題的_single_正確答案進行比較。除此之外,沒有一個好的[mcve]和一個更清晰的問題,我不明白這是如何回答的。 –

+0

對不起。由於所涉及的所有部分,難以正確解釋。有兩種不同的類型:地理和數學以及其他與現在無關的按鈕。問題從文本文件導入到列表框中,以便檢查每個主題的回覆是否正確,需要創建一個if,但是在第二部分中出現錯誤,即使使用||也是如此。當獲得第二個主題時,只是一個錯誤。希望有所幫助。 – Zach

+0

_「希望有一點幫助」_ - 不。即使一點點也沒有幫助。請閱讀[問]。另請參閱該頁底部鏈接的文章。然後再讀[mcve]。當你寫下你的問題時,做一個_real effort_讓自己置身於正在閱讀的人的位置。他們對你的情況一無所知。給他們所有他們需要的信息。確保你不給他們任何他們不需要的信息。 –

回答

-1

可以這樣的東西解決您的問題?

if (lsbMathAns.SelectedItem != null && lsbMathAns.SelectedItem.ToString() == txtAnswer.Text) ... 

if (lsbMathAns.SelectedIndex >= 0 && lsbMathAns.SelectedItem.ToString() == txtAnswer.Text) ... 
+0

這個第一部分,如果完美地工作,併入其他部分。非常感謝您@GiorgosAltanis – Zach

+0

但你必須把它的「如果」一部分。 –

+0

對,我第一次打錯輸入。我的意思是當我添加一個其他的,如果第二個「主題」類型,它完美的作品。我確實使用了第一個。 – Zach