GUI Windows Form C#

/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Modeless
{
  /// 
  /// Summary description for MainForm.
  /// 

  public class MainFormDemo : System.Windows.Forms.Form
  {
    private System.Windows.Forms.ListBox listBox1;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Button button2;
    private System.Windows.Forms.Button button3;
    /// 
    /// Required designer variable.
    /// 

    private System.ComponentModel.Container components = null;
    AddItemForm frmAdd;
    public MainFormDemo()
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();
      //
      // TODO: Add any constructor code after InitializeComponent call
      //
      frmAdd = new AddItemForm (this);
    }
    /// 
    /// Clean up any resources being used.
    /// 

    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null) 
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }
    #region Windows Form Designer generated code
    /// 
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// 

    private void InitializeComponent()
    {
      this.listBox1 = new System.Windows.Forms.ListBox();
      this.button1 = new System.Windows.Forms.Button();
      this.button2 = new System.Windows.Forms.Button();
      this.button3 = new System.Windows.Forms.Button();
      this.SuspendLayout();
      // 
      // listBox1
      // 
      this.listBox1.Location = new System.Drawing.Point(42, 16);
      this.listBox1.Name = "listBox1";
      this.listBox1.Size = new System.Drawing.Size(208, 199);
      this.listBox1.TabIndex = 0;
      // 
      // button1
      // 
      this.button1.Location = new System.Drawing.Point(17, 240);
      this.button1.Name = "button1";
      this.button1.TabIndex = 1;
      this.button1.Text = "Add Item";
      this.button1.Click += new System.EventHandler(this.button1_Click);
      // 
      // button2
      // 
      this.button2.Location = new System.Drawing.Point(109, 240);
      this.button2.Name = "button2";
      this.button2.TabIndex = 2;
      this.button2.Text = "Delete Item";
      this.button2.Click += new System.EventHandler(this.button2_Click);
      // 
      // button3
      // 
      this.button3.DialogResult = System.Windows.Forms.DialogResult.Cancel;
      this.button3.Location = new System.Drawing.Point(201, 240);
      this.button3.Name = "button3";
      this.button3.TabIndex = 3;
      this.button3.Text = "Close";
      this.button3.Click += new System.EventHandler(this.button3_Click);
      // 
      // MainForm
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.CancelButton = this.button3;
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.button3,
                                      this.button2,
                                      this.button1,
                                      this.listBox1});
      this.Name = "MainForm";
      this.Text = "MainForm";
      this.ResumeLayout(false);
    }
    #endregion
    /// 
    /// The main entry point for the application.
    /// 

    [STAThread]
    static void Main() 
    {
      Application.Run(new MainFormDemo());
    }
    private void button1_Click(object sender, System.EventArgs e)
    {
      if (frmAdd.IsDisposed == true)
        frmAdd = new AddItemForm (this);
      frmAdd.Show ();
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
      if (listBox1.SelectedIndex < 0)
        return;
      object obj = listBox1.Items[listBox1.SelectedIndex];
      listBox1.Items.Remove (obj);
    }
    private void button3_Click(object sender, System.EventArgs e)
    {
      Application.Exit ();
    }
    public string AddItemToList (string strAdd)
    {
      if (strAdd == "")
        return ("");
      if (listBox1.FindString (strAdd, -1) < 0)
      {
        listBox1.Items.Add (strAdd);
        return ("");
      }
      MessageBox.Show ("\"" + strAdd + "\" is already in the list box", "Duplicate");
      return (strAdd);
    }
  }
  /// 
  /// Summary description for AddItemForm.
  /// 

  public class AddItemForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Button button2;
    /// 
    /// Required designer variable.
    /// 

    private System.ComponentModel.Container components = null;
    MainFormDemo parent;
    public AddItemForm(MainFormDemo parent)
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();
      //
      // TODO: Add any constructor code after InitializeComponent call
      //
      this.parent = parent;
    }
    /// 
    /// Clean up any resources being used.
    /// 

    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if(components != null)
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }
    #region Windows Form Designer generated code
    /// 
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// 

    private void InitializeComponent()
    {
      this.textBox1 = new System.Windows.Forms.TextBox();
      this.button1 = new System.Windows.Forms.Button();
      this.button2 = new System.Windows.Forms.Button();
      this.SuspendLayout();
      // 
      // textBox1
      // 
      this.textBox1.Location = new System.Drawing.Point(28, 8);
      this.textBox1.Name = "textBox1";
      this.textBox1.Size = new System.Drawing.Size(224, 20);
      this.textBox1.TabIndex = 1;
      this.textBox1.Text = "";
      // 
      // button1
      // 
      this.button1.Location = new System.Drawing.Point(40, 48);
      this.button1.Name = "button1";
      this.button1.TabIndex = 2;
      this.button1.Text = "Add";
      this.button1.Click += new System.EventHandler(this.button1_Click_1);
      // 
      // button2
      // 
      this.button2.Location = new System.Drawing.Point(184, 48);
      this.button2.Name = "button2";
      this.button2.TabIndex = 3;
      this.button2.Text = "Close";
      this.button2.Click += new System.EventHandler(this.button2_Click);
      // 
      // AddItemForm
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(280, 77);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.button2,
                                      this.button1,
                                      this.textBox1});
      this.Name = "AddItemForm";
      this.Text = "AddItem";
      this.ResumeLayout(false);
    }
    #endregion
    private void button1_Click_1(object sender, System.EventArgs e)
    {
      textBox1.Text = parent.AddItemToList (textBox1.Text);
//      textBox1.Text = "";
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
      this.Dispose ();
      this.Close ();
    }
  }
}