home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Toolbars and Status Bars / MenuHelpFirstTry / MenuHelpFirstTry.cs next >
Encoding:
Text File  |  2001-01-15  |  3.6 KB  |  110 lines

  1. //-----------------------------------------------
  2. // MenuHelpFirstTry.cs ⌐ 2001 by Charles Petzold
  3. //-----------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Windows.Forms;
  7.  
  8. class MenuHelpFirstTry: Form
  9. {
  10.      StatusBarPanel sbpMenuHelp;
  11.      string         strSavePanelText;
  12.  
  13.      public static void Main()
  14.      {
  15.           Application.Run(new MenuHelpFirstTry());
  16.      }
  17.      public MenuHelpFirstTry()
  18.      {
  19.           Text = "Menu Help (First Try)";
  20.           BackColor = SystemColors.Window;
  21.           ForeColor = SystemColors.WindowText;
  22.  
  23.                // Create a status bar with one panel.
  24.  
  25.           StatusBar sb = new StatusBar();
  26.           sb.Parent = this;
  27.           sb.ShowPanels = true;
  28.  
  29.           sbpMenuHelp = new StatusBarPanel();
  30.           sbpMenuHelp.Text = "Ready";
  31.           sbpMenuHelp.AutoSize = StatusBarPanelAutoSize.Spring;
  32.  
  33.           sb.Panels.Add(sbpMenuHelp);
  34.  
  35.                // Construct a simple menu.
  36.                // For this demo, we can ignore the Click handlers
  37.                //   but what we really need are Select handlers.
  38.  
  39.           Menu = new MainMenu();
  40.           EventHandler ehSelect = new EventHandler(MenuOnSelect);
  41.           
  42.                // Create File menu items.
  43.  
  44.           MenuItem mi = new MenuItem("File");
  45.           mi.Select += ehSelect;
  46.           Menu.MenuItems.Add(mi);
  47.  
  48.           mi = new MenuItem("Open");
  49.           mi.Select += ehSelect;
  50.           Menu.MenuItems[0].MenuItems.Add(mi);
  51.           
  52.           mi = new MenuItem("Close");
  53.           mi.Select += ehSelect;
  54.           Menu.MenuItems[0].MenuItems.Add(mi);
  55.  
  56.           mi = new MenuItem("Save");
  57.           mi.Select += ehSelect;
  58.           Menu.MenuItems[0].MenuItems.Add(mi);
  59.  
  60.                // Create Edit menu items.
  61.  
  62.           mi = new MenuItem("Edit");
  63.           mi.Select += ehSelect;
  64.           Menu.MenuItems.Add(mi);
  65.  
  66.           mi = new MenuItem("Cut");
  67.           mi.Select += ehSelect;
  68.           Menu.MenuItems[1].MenuItems.Add(mi);
  69.           
  70.           mi = new MenuItem("Copy");
  71.           mi.Select += ehSelect;
  72.           Menu.MenuItems[1].MenuItems.Add(mi);
  73.  
  74.           mi = new MenuItem("Paste");
  75.           mi.Select += ehSelect;
  76.           Menu.MenuItems[1].MenuItems.Add(mi);
  77.      }
  78.      protected override void OnMenuStart(EventArgs ea)
  79.      {
  80.           strSavePanelText = sbpMenuHelp.Text;
  81.      }
  82.      protected override void OnMenuComplete(EventArgs ea)
  83.      {
  84.           sbpMenuHelp.Text = strSavePanelText;
  85.      }
  86.      void MenuOnSelect(object obj, EventArgs ea)
  87.      {
  88.           MenuItem mi = (MenuItem) obj;
  89.           string   str;
  90.  
  91.           switch (mi.Text)
  92.           {
  93.           case "File":   str = "Commands for working with files";    break;
  94.           case "Open":   str = "Opens an existing document";         break;
  95.           case "Close":  str = "Closes the current document";        break;
  96.           case "Save":   str = "Saves the current document";         break;
  97.           case "Edit":   str = "Commands for editing the document";  break;
  98.           case "Cut":    str = "Deletes the selection and " +
  99.                                "copies it to the clipboard";         break;
  100.           case "Copy":   str = "Copies the selection to the " +
  101.                                "clipboard";                          break;
  102.           case "Paste":  str = "Replaces the current selection " +
  103.                                "with the clipboard contents";        break;
  104.           default:       str = "";                                   break;
  105.           }
  106.  
  107.           sbpMenuHelp.Text = str;
  108.      }
  109. }
  110.