2013-12-12 2 views
0

버튼을 클릭했을 때 만든 클래스를 사용하기 때문에 요구 사항을 충족하지 못하면 메시지 상자가 표시되지만 버튼으로 돌아가는 것처럼 되돌아 가지 않습니다.코드의 맨 위로 돌아가려면 어떻게해야합니까?

예를 들어,이 메시지 상자 중 하나가 표시된 후에 프로그램을 되돌리려면됩니다. 이제 버튼을 클릭하면됩니다.

 public Trekking(int Maxwaarde, int AantalGewenst) 
    { 
     if (Maxwaarde > 90) 
     { 
      MessageBox.Show("Uw getal mag niet boven de 90 zijn!"); 

     } 
     else if (Maxwaarde < 0) 
     { 
      MessageBox.Show("Dit aantal is niet mogelijk!"); 
     } 
     else if (AantalGewenst > 45) 
     { 
      MessageBox.Show("Uw getal mag niet boven de 45 zijn!"); 
     } 
     else if (AantalGewenst < 0) 
     { 
      MessageBox.Show("Dit aantal is niet mogelijk!"); 
     } 
     else if (Maxwaarde/AantalGewenst < 2) 
     { 
      MessageBox.Show("Uw maxwaarde moet minstens het dubbele van Aantal Gewenst zijn!"); 
      return; 
     } 
     else 
     { 
      if (AantalGewenst <= 45) 
       IsTenEinde = true; 
     } 

     random = new Random(); 
     getallen = new int[AantalGewenst]; 
     this.Maxwaarde = Maxwaarde; 
     this.AantalGewenst = AantalGewenst; 
     AantalGetrokken = 0; 
     IsTenEinde = false; 
    } 

버튼 : 당신은 Maxwaarde/AantalGewenst < 2 제외한 모든 오류의 경우에 반환하지 않는

private void btnStart_Click(object sender, EventArgs e) 
    { 
     int AantalGewenst = Convert.ToInt32(tbInvoerAantalGewenst.Text); 
     int Maxwaarde = Convert.ToInt32(tbInvoerMaxwaarde.Text); 
     trekking = new Trekking(Maxwaarde, AantalGewenst); 
     btnTrek.Enabled = true; 
     btnStop.Enabled = true; 
    } 
+0

참고 :'Dit aantal is niet mogelijk!'='이 숫자는 불가능합니다! '; 당신 번호가 [번호]보다 높아서는 안됩니다! –

+0

5 명이 질문을 이해할 수 없어서 이것을 보류하기 위해 투표했지만, 나는 대답했습니다. 이 사이트의 프로그래머 중 일부는 궁금합니다. 많은 사람들이 박스 밖에서 생각할 수있는 것 같지 않습니다. – jp2code

답변

0

첫째, 나는 나 정확하지 않을 수있는 몇 가지 변수를 가정했다 : 나는 당신의 트레킹을 수정, 그 사용

private const int ERROR = -1; 

:

private bool IsTenEinde; 
private int AantalGetrokken, AantalGewenst, Maxwaarde; 
private TextBox tbInvoerAantalGewenst, tbInvoerMaxwaarde; 
private Button btnStop, btnTrek; 

다음, 나는 상수를 정의 함수를 사용하여 십진수 (나눗셈을하려는 것처럼 보이기 때문에)을 반환하고 다음으로 변경했습니다.

private void btnStart_Click(object sender, EventArgs e) { 
    btnTrek.Enabled = false; 
    btnStop.Enabled = false; 
    int AantalGewenst = Convert.ToInt32(tbInvoerAantalGewenst.Text); 
    int Maxwaarde = Convert.ToInt32(tbInvoerMaxwaarde.Text); 
    decimal trekking = Trekking(Maxwaarde, AantalGewenst); 
    btnTrek.Enabled = true; 
    btnStop.Enabled = true; 
    if (ERROR < trekking) { 
    MessageBox.Show(trekking.ToString()); 
    } 
} 

당신이 프로그래밍 클래스 위치 : 그와
public decimal Trekking(int Maxwaarde, int AantalGewenst) { 
    decimal result = ERROR; 
    if (Maxwaarde > 90) { 
    MessageBox.Show("Uw getal mag niet boven de 90 zijn!"); 
    return result; 
    } else if (Maxwaarde < 0) { 
    MessageBox.Show("Dit aantal is niet mogelijk!"); 
    return result; 
    } else if (AantalGewenst > 45) { 
    MessageBox.Show("Uw getal mag niet boven de 45 zijn!"); 
    return result; 
    } else if (AantalGewenst < 0) { 
    MessageBox.Show("Dit aantal is niet mogelijk!"); 
    return result; 
    } else if (Maxwaarde/AantalGewenst < 2) { 
    MessageBox.Show("Uw maxwaarde moet minstens het dubbele van Aantal Gewenst zijn!"); 
    return result; 
    } else { 
    if (AantalGewenst <= 45) 
     IsTenEinde = true; 
    } 
    var random = new Random(); 
    var getallen = new int[AantalGewenst]; 
    this.Maxwaarde = Maxwaarde; 
    this.AantalGewenst = AantalGewenst; 
    result = (decimal)Maxwaarde/(decimal)AantalGewenst; 
    AantalGetrokken = 0; 
    IsTenEinde = false; 
    return result; 
} 

당신은 당신이 값으로 무엇을해야 할 당신의 btnStart_Click 이벤트를 수정해야 할? 이런 종류의 숙제는 마치 숙제처럼 보입니다.

+0

안녕하세요, 고마워요,이 숙제가 있지만 이것은 단지 내가 가진 작은 문제였습니다. – user3043427

2

. return이 없으면 random = new Random(); 행까지 계속됩니다.