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