c#if if else if语句事件在else之前触发if if

时间:2015-03-26 21:57:46

标签: c# button if-statement

所以我有隐藏按钮,我只想在达到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;

3 个答案:

答案 0 :(得分:2)

你的&#34; Smarty Pants&#34; line必须在大括号内。

else 
{
    MessageBox.Show("Smarty Pants, You're Right!!");
    NextQuestion();
}

就目前而言,这是你&#34;否则&#34;中的唯一一条线。子句,这意味着NextQuestion()将始终触发。

答案 1 :(得分:1)

要稍微添加@ Joe的答案(除了需要格式化之外,这将是一条评论),这就是else部分代码的样子,格式正确:

else 
    MessageBox.Show("Smarty Pants, You're Right!!");

{
    NextQuestion();
}

请注意,{}块并未附加到if,它本身只是一个块。

答案 2 :(得分:1)

编辑:这只涉及问题的第二部分。

要禁用控件,请尝试将设置设置为false。

btnCheckAnswer.Enabled = false;