GUI Windows Form C#

using System;
using System.Drawing;
using System.Windows.Forms;
   
class FontMenu: Form
{
     const int iPointSize = 24;
     string    strFacename;
   
     public static void Main()
     {
          Application.Run(new FontMenu());
     }
     public FontMenu()
     {
          strFacename = Font.Name;
   
          Menu = new MainMenu();
   
          MenuItem mi = new MenuItem("&Facename");
          mi.Popup += new EventHandler(MenuFacenameOnPopup);
          mi.MenuItems.Add(" ");   // Necessary for pop-up call
          Menu.MenuItems.Add(mi);
     }
     void MenuFacenameOnPopup(object obj, EventArgs ea)
     {
          MenuItem     miFacename = (MenuItem)obj;
          FontFamily[] aff        = FontFamily.Families;
          EventHandler ehClick    = new EventHandler(MenuFacenameOnClick);
          MenuItem[]   ami        = new MenuItem[aff.Length];
   
          for (int i = 0; i < aff.Length; i++)
          {
               ami[i] = new MenuItem(aff[i].Name);
               ami[i].Click += ehClick;
   
               if (aff[i].Name == strFacename)
                    ami[i].Checked = true;
          }
          miFacename.MenuItems.Clear();
          miFacename.MenuItems.AddRange(ami);
     }
     void MenuFacenameOnClick(object obj, EventArgs ea)
     {    
          MenuItem mi = (MenuItem)obj;
          strFacename = mi.Text;
          Invalidate();
     }
     protected override void OnPaint(PaintEventArgs pea)
     {
          Graphics grfx = pea.Graphics;
          Font     font = new Font(strFacename, iPointSize);
   
          StringFormat strfmt  = new StringFormat();
          grfx.DrawString("Sample Text", font, new SolidBrush(ForeColor), 
                          ClientRectangle, strfmt);
     }                        
}