2012-04-09 3 views
0

나는 Wumpus를 사냥하고 있는데 문제가 생겼다. (나는 고등학생입니다.) 나는 퀴즈 수업을 담당하고 있으며, 여기서 뭔가 잘못하고 있습니다. 현재 코드에서 폼을 표시하고 사용자에게 입력을 요청하고 answerstatus를 true/false로 설정합니다. 나는 주어진 답에 기초하여 정확한 답의 수를 세는 다른 반을 원한다. 내 질문은, 어떻게하면이 클래스를 계산합니까, 사용자가 창을 닫을 때입니까?양식에 대한 조치가 완료 되었습니까? C#

public void passOrFailWumpusEncounter(bool result) 
    { 
     if (currentTested == WUMPUS_TEST_AMOUNT) 
     { 
      return; 
     } 
     if(result) 
     { 
      currentPassed++; 
      currentTested++; 
     } 
     else 
     { 
      currentTested++; 
     } 

    } 

내가 (다른 클래스에)

public bool getQuestionStatus() 
    { 
     return questionStatus; 
    } 

에서 "결과를"받고 있어요 나는

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) 
    { 
     trivia.passOrFailWumpusEncounter(prompt.getQuestionStatus()); 
    } 

을 시도했다 그러나 주변에 아무것도하지 않습니다!

+3

는 관련 코드를 포함합니다. –

+1

[C# - 양식이 닫힐 때의 작업] 가능한 중복 (http://stackoverflow.com/questions/2261179/c-sharp-action-when-form-is-closed), 제목에서 거의 단어. 질문을 게시하기 전에 가능한 해결책을 찾으십시오. 그것은 소음과 복사를 줄입니다. 감사. :) –

+0

조금 더 많은 코드가 필요하다고 생각합니다. 게시 한 두 조각 사이에는 논리적 인 관계가 없습니다. –

답변

3

잘 이해하면 사용자가 창을 닫을 때 코드를 실행하면됩니다.

프로그래밍, 당신은 (폼이로드 될 때, 예를 들어) 초기화에

form1.Close += ANewFunction; // registering the handler 

를 실행하고 핸들러 자체 작성해야 :

public void ANewFunction(EventsArg e) { ... } 

을하지만 같은 간단한 경우에, 당신은 할 수 있어야 Visual Studio는 더러운 작업을 수행합니다. 폼 속성에서 이벤트 닫기를 두 번 클릭합니다 (이벤트를 표시하려면 속성 탭에서 단추를 클릭해야 할 수도 있습니다. 그러면 폼 디자이너에서 form1.designer.cs에 핸들러를 등록하고 사용자 코드에 가까운 처리기의 프로토 타입.

+1

간단히 "Form1_FormClosing"을 쓰면 코드를 실행하기에 충분하지 않습니다. "form1.Close + = ANewFunction;"을 사용하여 이벤트에 핸들러를 등록해야합니다. – PPC

+0

오. 감사. 이제 작동합니다. –

+0

문제가 해결 되었다면 답을 표시하십시오. –

0

양식 닫기를 청취하는 이벤트를 찾으십시오. 처리기를 작성하여 정답 수를 설정하는 다른 클래스의 메소드를 호출하는 코드를 작성하십시오. 이 점에 대해 자세히 설명하지 않은 경우 자세한 내용을 참조하십시오.

+0

이것은 내 질문에 대답하지 않습니다 ... 당신은 내가 무엇을 말했는지 알고 .. –

+2

@ 벤, 그 경우에 당신은 당신의 질문을 쓸 때 더 잘되어야합니다. –

0

양식을 만들고 표시 한 후에도 여전히 라이브 상태입니다. 따라서 호출 함수에서 해당 형식의 응답을 읽을 수 있습니다. 예를 들어

는 :

 Form myForm = new Form(); 
     myForm.ShowDialog(); 
     if (myForm.CheckBox.Checked) //myForm still exists and you check it's state 
     { 
      Console.Out.WriteLine("The answer is yes!"); 
     } 
관련 문제