2017-04-09 55 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