c# - Can a Form be prevented from closing until a criteria is met? -


so have setup time tracking .exe file saves user input data .csv file. have code setup criteria user cannot save file unless ' @ least 8 hours' have been met.

however, want make .exe file stay open (kind of forced open) unless user manages save file. user should not allowed close program unless '8 hours ' criteria met. appreciated. section of code criteria being determine:

  private void button1_click(object sender, eventargs e)     {         if (convert.toint32(textbox28.text) + convert.toint32(textbox29.text) + convert.toint32(textbox2.text) + convert.toint32(textbox3.text) + convert.toint32(textbox4.text) + convert.toint32(textbox6.text) + convert.toint32(textbox5.text) + convert.toint32(textbox7.text) + convert.toint32(textbox36.text) + convert.toint32(textbox40.text) < 8)         {             messagebox.show("total hours should @ least 8");         }         else         {             streamwriter myoutputstream = new streamwriter("c:\\demo\\test.csv",true);             myoutputstream.writeline((datetimepicker1.text) + "," + (textbox47.text) + "," + (textbox28.text) + "," + (textbox29.text) + "," + (textbox2.text) + "," + (textbox3.text) + "," + (textbox4.text) + "," + (textbox6.text) + "," + (textbox5.text) + "," + (textbox7.text) + "," + (textbox36.text) + "," + (textbox40.text));               myoutputstream.close();           }     } 

you can subscribe closing event of form , check if want cancel closing process:

public partial class form1 : form {     private bool closecriteriamet;      public form1()     {         initializecomponents();          // subscribe event         closing += onformclosing;     }      // "closing" event handler     private void onformclosing(object sender, formclosingeventargs e)     {         e.cancel = !closecriteriamet; // tell form not close      } } 

or (as larstech suggested) override onformclosing method

public partial class form1 : form {      // "closing" event handler     protected override void onformclosing(formclosingeventargs e)     {         base.onformclosing(e);         e.cancel |= !closecriteriamet; // combine cancel flag      } } 

but note prevents user closing form via ui. process can still killed via task manager or other tools.


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -