Mega Code Archive

 
Categories / C# / Thread
 

Demonstrates hiding a form and then doing background processing in a second thread

/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // HideForm.cs -- Demonstrates hiding a form and then doing background //                processing in a second thread. // //                Compile this program with the following command line: //                    C:>csc HideForm.cs using System; using System.Windows.Forms; using System.Threading; namespace HideForm {     public class HideForm : System.Windows.Forms.Form     {         private System.Windows.Forms.Button button1;         public HideForm()         {             Text = "A Simple Form";             button1 = new Button ();             SuspendLayout();             button1.Text = "Cancel";             button1.Name = "button1";             button1.Size = new System.Drawing.Size (72, 30);             button1.Location = new System.Drawing.Point ((ClientRectangle.Width - button1.Size.Width) / 2, ClientRectangle.Height - 35);             Controls.AddRange(new System.Windows.Forms.Control[] {this.button1});             button1.Click += new System.EventHandler(OnClickButton1);             this.Closed += new System.EventHandler(OnClickButton1);             ResumeLayout (false);             this.Visible = false;         }         [STAThread]         static void Main()          {             HideForm form = new HideForm();             Thread delay = new Thread (new ThreadStart(form.DelayVisible));             delay.Start ();             Application.Run();         }         public void DelayVisible ()         {             while (true)             {                 Thread.Sleep (2500);                 DialogResult result = MessageBox.Show ("Display Form?", "Display", MessageBoxButtons.YesNoCancel);                 switch (result)                 {                     case DialogResult.Yes:                         this.ShowDialog();                         return;                     case DialogResult.No:                         continue;                     case DialogResult.Cancel:                         Application.Exit ();                         break;                 }                 return;             }         }         private void OnClickButton1(object sender, System.EventArgs e)         {             Application.Exit ();         }     } }