2013-12-12 4 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; 
    } 

кнопка:

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!' = 'Это число невозможно!'; 'Uw getal mag niet boven de [number] zijn!' = 'Ваш номер не должен быть выше [number]!' –

+0

5 человек проголосовали за его приостановление, потому что они не смогли понять вопрос, но я ответил на него. Интересно, некоторые программисты на этом сайте. Многие из них, похоже, не в состоянии думать за пределами коробки. – jp2code

ответ

0

Во-первых, я должен был взять на себя некоторые переменные, которые могут или не могут быть правильными:

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

Далее я определил константу:

private const int ERROR = -1; 

Используя это, я изменил свой Треккинг чтобы вернуть десятичный (потому что похоже, что вы пытаетесь выполнить деление) и изменил его на это:

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 события, чтобы сделать все, что нужно со значением:

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()); 
    } 
} 

Вы в классе программирования? Этот вид выглядит как домашнее задание.

+0

Привет, да, это домашнее задание, но это была небольшая проблема, с которой я столкнулся – user3043427

2

Вы не возвращаются в любом случае ошибки для Maxwaarde/AantalGewenst < 2 исключением. Без return он будет продолжаться до линии random = new Random();.