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