2D Graphics C#

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
   
class TriangleTile: Form
{
     const int iSide = 50;         // Side of square for triangle
     MenuItem  miChecked;
   
     public static void Main()
     {
          Application.Run(new TriangleTile());
     }
     public TriangleTile()
     {
          ResizeRedraw = true; 
   
          Menu = new MainMenu();
          Menu.MenuItems.Add("&Wrap-Mode");
   
          foreach (WrapMode wm in Enum.GetValues(typeof(WrapMode)))
          {
               MenuItem mi = new MenuItem();
               mi.Text     = wm.ToString(); 
               mi.Click   += new EventHandler(MenuWrapModeOnClick);
               Menu.MenuItems[0].MenuItems.Add(mi);
          }
          miChecked = Menu.MenuItems[0].MenuItems[0];
          miChecked.Checked = true;
     }
     void MenuWrapModeOnClick(object obj, EventArgs ea)
     {
          miChecked.Checked = false;
          miChecked = (MenuItem) obj;
          miChecked.Checked = true;
          Invalidate();
     }
     protected override void OnPaint(PaintEventArgs pea)
     {
          DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
     }        
     protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
     {
          Point[] apt = { new Point(0,     0), 
                          new Point(iSide, 0), 
                          new Point(0,     iSide)};
   
          PathGradientBrush pgbrush = 
                    new PathGradientBrush(apt, (WrapMode) miChecked.Index);
   
          grfx.FillRectangle(pgbrush, 0, 0, cx, cy);
     }
}