2015-03-26 4 views
-4

, поэтому у меня есть скрытые кнопки, которые я хочу показать только при достижении maxAttempts с помощью кода ниже, кнопки открываются после первой неправильной попытки. Кроме того, пока я нахожусь в этом, я хочу отключить кнопку и текстовое поле в игре, но когда я пишу btncheckAnswer.disable и txtResult.disable, я вижу исключения.C# Если else if вызывает триггеры события раньше else, если

Любые предложения?

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; 
+1

Какова ценность 'maxAttempts', когда это происходит (не угадайте, не забудьте)? Каково первоначальное значение 'numAttempts' (ditto)? Что делает 'NextQuestion()' do - изменяет ли значение? –

+0

'Если else, если оператор события триггеров раньше, если он делает a) Нет такой вещи. B) Они не являются событиями ..... – EZI

+0

@PaulRoub maxAttempts - 5, numAttempts - глобальный, начиная с нуля, каждый неправильный ответ увеличивает один чтобы дать, когда игра должна закончиться. Следующий вопрос(); очищает txtResult и подключает другой вопрос. Как правильно форматировать if else if else? – freakostudent

ответ

1

Редактировать: Это касается только второй части вопроса.

Чтобы отключить контроль, параметр настройки включен в значение false.

btnCheckAnswer.Enabled = false; 
+0

И вы думаете, что это проблема? Прочтите вопрос еще раз. – EZI

+0

@sean J. Спасибо за этот совет, это то, что мне нужно. – freakostudent

+0

@ Benj851 Действительно? – EZI

2

Ваша линия «Smarty Pants» должна находиться внутри фигурных скобок.

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

Как можно заметить, что это единственная строка в вашем «другом» пункте, что означает NextQuestion() всегда будет огня.

1

Чтобы немного добавить к @ ответ Джо (это будет комментарий, за исключением его потребности форматирования), это то, что что else часть кода выглядит, правильно отформатирован:

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

{ 
    NextQuestion(); 
} 

Обратите внимание, что {} блок ISN привязанный к if, это просто блок сам по себе.

+0

Спасибо. У меня таких гораздо больше. Я новичок в программировании. Я ценю вашу помощь. – freakostudent

Смежные вопросы