Font Menu : MenuItem « GUI Windows Form « C# / C Sharp






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

 








Related examples in the same category

1.new MenuItem
2.Creating a menu on the fly.
3.Set MenuItem ShortCut
4.Subclass MenuItem
5.RadioCheck MenuItem
6.Hatch Brush Menu
7.Owner Drawn Menu ControlOwner Drawn Menu Control
8.Owner Drawn MenuOwner Drawn Menu
9.Add Help text for MenuItem
10.Help Menu