2013-03-09 3 views
0

뭔가 알아 내는데 어려움이 있습니다.맞음/틀린 답을 기반으로 버튼의 색상을 변경하십시오.

클릭 한 단추가 정답인지 틀린 대답인지에 따라 단추의 배경색을 변경하고 싶습니다. 즉, 클릭 한 단추가 정답이면 배경색이 YellowGreen으로 변경되고 틀린 경우 대답, 모든 잘못된 답변의 배경색은 적색으로 변하며 오른쪽 답은 YellowGreen의 배경색을 가지므로 사용자는 그들이 올바른 질문을 받았는지 또는 잘못되었는지를 볼 수 있습니다. 하나를 수정하십시오.

첫 번째 질문과 같은 네 가지 버튼이 있습니다. 정답을 클릭하면 녹색으로 바뀌고 잘못된 답은 빨간색으로 바뀌지 만 다음을 클릭하면 다음 질문으로 넘어가 더 이상 색상이 변경되지 않습니다. . 잘못된 답변 중 하나를 클릭하면 색상이 변경되지 않습니다. 먼저 올바른 것을 클릭해야합니다.

4 개의 버튼의 이름은 button4, button5, button6 및 button7입니다. 예제 코드 나는 (네 개의 버튼이 있음)가 다음 btnNext_Click에

if (qCorrect == 1) 
{ 
    button4.BackColor = Color.YellowGreen; 
    button5.BackColor = Color.Red; 
    button6.BackColor = Color.Red; 
    button7.BackColor = Color.Red; 
} 

나는이 :

private void btnNext_Click(object sender, EventArgs e) 
    { 
     // swap panels 
     dPanel.Visible = false; 
     qPanel.Visible = true; 

     button4.BackColor = SystemColors.Control; 
     button5.BackColor = SystemColors.Control; 
     button6.BackColor = SystemColors.Control; 
     button7.BackColor = SystemColors.Control; 

     button4.Font = new Font(button4.Font.Name, button4.Font.Size, FontStyle.Regular); 
     button5.Font = new Font(button5.Font.Name, button5.Font.Size, FontStyle.Regular); 
     button6.Font = new Font(button6.Font.Name, button6.Font.Size, FontStyle.Regular); 
     button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Regular); 

     if (qCounter != qSection) 
     { 
      PickQuestion(); 
      label5.Text = "Question " + qCounter.ToString() + " of " + qSection.ToString(); 

      button4.Enabled = true; 
      button5.Enabled = true; 
      button6.Enabled = true; 
      button7.Enabled = true; 
     } 
     else 
     { 
      btnNext.Enabled = false; 
      label5.Text = "You answered " + qCorrect.ToString() + " questions correctly out of a possible " + qSection.ToString(); 
     } 
    } 

문제에 어떤 도움이 많이 많이 주시면 감사하겠습니다.

+0

다음 버튼의 이벤트 처리기에는 무엇이 있습니까? 버튼을 새로 지정 하시겠습니까? –

+0

@ bash.d 질문이 업데이트되었습니다. – user2141272

+0

'qCorrect'를 재설정 했습니까? 'PickQuestion'은 어떻게 될까요? 버튼에 대한 이벤트 핸들러의 첫 번째 할당에는 이상한 것이 있어야합니다. –

답변

0

오케이, 알겠습니다. 응답 버튼의 이벤트 핸들러에서 항상 qCorrect가 증가하지만 qCorrect == 1 만 확인합니다. 첫 번째 대답을 클릭하면 qCorrect은 1이되고 두 번째 대답을하면 qCorrect은 2가되지만 qCorrect == 1을 확인합니다. 등등 ...

easy-mode의 경우 button4_click 및 button6_click에 중단 점을 설정하면 의미를 알 수 있습니다. 희망이 당신을 더욱 도움이됩니다.

+0

중단 점은 무엇을 의미합니까? 이전에는 중단 점을 사용한 적이 없었습니다. – user2141272

+0

Uhh ... VS2012 IDE에서 회선 번호 옆에있는을 클릭하면 빨간색 점이 나타나 중단 점을 알립니다. 'F5'를 사용하여 프로그램을 시작하면 디버그 모드로 시작하고 실행이 중단 점에 도달하면 프로그램이 유지됩니다. –

+0

흠. 그렇기 때문에 qCorrect를 확인해야하지만 항상 qCorrect = 1로 확인하지 않아야합니다. 1 – user2141272

관련 문제