GUI Windows Forms C# Tutorial

using System;
using System.Drawing;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
    private System.Windows.Forms.NotifyIcon notifyIcon1;
    private System.Windows.Forms.ContextMenu contextMenu1;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.ComponentModel.IContainer components;
    [STAThread]
    static void Main() 
    {
        Application.Run(new Form1());
    }
    public Form1()
    {
        this.components = new System.ComponentModel.Container();
        this.contextMenu1 = new System.Windows.Forms.ContextMenu();
        this.menuItem1 = new System.Windows.Forms.MenuItem();
        this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {this.menuItem1});
        this.menuItem1.Index = 0;
        this.menuItem1.Text = "E&xit";
        this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
        this.ClientSize = new System.Drawing.Size(292, 266);
        this.Text = "Notify Icon Example";
        this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
        notifyIcon1.Icon = new Icon("appicon.ico");
        notifyIcon1.ContextMenu = this.contextMenu1;
        notifyIcon1.Text = "Form1 (NotifyIcon example)";
        notifyIcon1.Visible = true;
        notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);
    }
    protected override void Dispose( bool disposing )
    {
        if( disposing )
            if (components != null)
                components.Dispose();            
        base.Dispose( disposing );
    }
    private void notifyIcon1_DoubleClick(object Sender, EventArgs e) 
    {
        if (this.WindowState == FormWindowState.Minimized)
            this.WindowState = FormWindowState.Normal;
        this.Activate();
    }
    private void menuItem1_Click(object Sender, EventArgs e) {
        this.Close();
    }
}