Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Font Menu

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);      }                         }