2D Graphics C# Tutorial

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class LineCapDemo : System.Windows.Forms.Form
{
  private System.ComponentModel.Container components = null;
  public LineCapDemo()
  {
    InitializeComponent();
  }
  protected override void Dispose( bool disposing )
  {
    if( disposing )
    {
      if (components != null) 
      {
        components.Dispose();
      }
    }
    base.Dispose( disposing );
  }
  private void InitializeComponent()
  {
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Resize += new System.EventHandler(this.LineCapDemo_Resize);
    this.Paint += new System.Windows.Forms.PaintEventHandler(this.LineCapDemo_Paint);
  }
  [STAThread]
  static void Main() 
  {
    Application.Run(new LineCapDemo());
  }
  private void LineCapDemo_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
  {
    Graphics g = e.Graphics;
    Pen thePen = new Pen(Color.Black, 10);
    int yOffSet = 10;
    Array obj = Enum.GetValues(typeof(LineCap));
    for(int x = 0; x < obj.Length; x++)
    {
      LineCap temp = (LineCap)obj.GetValue(x);
      thePen.StartCap = temp;
      thePen.EndCap = temp;
      g.DrawString(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush(Color.Black), 0, yOffSet);
      g.DrawLine(thePen, 100, yOffSet, Width - 50, yOffSet);
      yOffSet += 40;
    }
  }
  private void LineCapDemo_Resize(object sender, System.EventArgs e)
  {
    Invalidate();
  }
}