c# if else if语句事件在else if之前触发
c# If else if statement event triggers before else if does
所以我有隐藏按钮,我只想在达到 maxAttempts 时显示,使用下面的代码,按钮在第一次错误尝试后打开。另外,当我在这里时,我想在游戏结束时禁用按钮和文本框,但是当我写 btncheckAnswer.disable 和 txtResult.disable 时,我看到了异常。
有什么建议吗?
private void btnCheckAnswer_Click(object sender, EventArgs e)
{
var userAnswer = double.Parse(txtResult.Text);
if (!puzzle.CheckTheAnswer(userAnswer))
{
MessageBox.Show("Wrong");
numAttempts++;
if (numAttempts < maxAttempts)
{ // UpdateImage();
NextQuestion();
}
else
if (numAttempts == maxAttempts)
{
MessageBox.Show("Game Over");
btnClose.Show();
btnNewGame.Show();
//btnCheckAnswer.disable();
//txtResult.disable;()
//Stop the game ();
//Block text box from receiving data
return;
}
}
else MessageBox.Show("Smarty Pants, You're Right!!");
{
NextQuestion();
}
return;
您的 "Smarty Pants" 行需要在大括号内。
else
{
MessageBox.Show("Smarty Pants, You're Right!!");
NextQuestion();
}
就目前而言,这是您的 "else" 子句中的唯一一行,这意味着 NextQuestion()
将始终触发。
稍微补充一下@Joe 的回答(这将是一条评论,除非它需要格式化),这就是 else
代码部分的样子,格式正确:
else
MessageBox.Show("Smarty Pants, You're Right!!");
{
NextQuestion();
}
请注意 {}
块没有附加到 if
,它只是一个独立的块。
编辑:这只解决了问题的第二部分。
要禁用控件,请尝试将启用设置为 false。
btnCheckAnswer.Enabled = false;
所以我有隐藏按钮,我只想在达到 maxAttempts 时显示,使用下面的代码,按钮在第一次错误尝试后打开。另外,当我在这里时,我想在游戏结束时禁用按钮和文本框,但是当我写 btncheckAnswer.disable 和 txtResult.disable 时,我看到了异常。
有什么建议吗?
private void btnCheckAnswer_Click(object sender, EventArgs e)
{
var userAnswer = double.Parse(txtResult.Text);
if (!puzzle.CheckTheAnswer(userAnswer))
{
MessageBox.Show("Wrong");
numAttempts++;
if (numAttempts < maxAttempts)
{ // UpdateImage();
NextQuestion();
}
else
if (numAttempts == maxAttempts)
{
MessageBox.Show("Game Over");
btnClose.Show();
btnNewGame.Show();
//btnCheckAnswer.disable();
//txtResult.disable;()
//Stop the game ();
//Block text box from receiving data
return;
}
}
else MessageBox.Show("Smarty Pants, You're Right!!");
{
NextQuestion();
}
return;
您的 "Smarty Pants" 行需要在大括号内。
else
{
MessageBox.Show("Smarty Pants, You're Right!!");
NextQuestion();
}
就目前而言,这是您的 "else" 子句中的唯一一行,这意味着 NextQuestion()
将始终触发。
稍微补充一下@Joe 的回答(这将是一条评论,除非它需要格式化),这就是 else
代码部分的样子,格式正确:
else
MessageBox.Show("Smarty Pants, You're Right!!");
{
NextQuestion();
}
请注意 {}
块没有附加到 if
,它只是一个独立的块。
编辑:这只解决了问题的第二部分。
要禁用控件,请尝试将启用设置为 false。
btnCheckAnswer.Enabled = false;