2013-12-12 88 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();线路。