2013-12-12 77 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!'='你的電話號碼不能超過[號碼]!' –

+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();線路。