Sample Code

Previous Next

Sample Code

The followng is Code segments from the Command TextEditor Example Application that handles cut/copy and paste for the text editor.


In the sample code note that each Command is handeling a toolbar button, Main Menu Item and a Popup Menu Item all without the use of the any of the Menu or button event handlers. Other controls could easisly be added by adding simply adding the control to the AddRange method.


Sample Code:

  1. public partial class TextEditor : Form
  2. {
  3.     // constructor
  4.     public TextEditor()
  5.     {
  6.         InitializeComponent();
  7.         InitializeCommandManager();
  8.     }
  9.     private void InitializeCommandManager()
  10.     {
  11.         cmdMgr.Commands.Add(new Command("CmdEditCopy", new Command.ExecuteHandler(CmdEditCopy)
  12.             , new Command.UpdateHandler(CmdEditCopyHandler)));
  13.         cmdMgr.Commands["CmdEditCopy"].CommandInstances.AddRange(mnuEditCopy, cMnuEditCopy, tb_Copy);
  14.         cmdMgr.Commands.Add(new Command("CmdMainCut", new Command.ExecuteHandler(CmdEditCut)
  15.             , new Command.UpdateHandler(CmdEditCutHandler)));
  16.         cmdMgr.Commands["CmdMainCut"].CommandInstances.AddRange( mnuEditCut, cMnuEditCut, tb_Cut);
  17.         cmdMgr.Commands.Add(new Command("CmdMainPaste", new Command.ExecuteHandler(CmdEditPaste)
  18.             , new Command.UpdateHandler(CmdEditPasteHandler)));
  19.         cmdMgr.Commands["CmdMainPaste"].CommandInstances.AddRange(mnuEditPaste, cMnuEditPaste , tb_Paste);
  20.     }
  21.     #region Command Handlers
  22.     #region Cut / Copy / Paste / Handlers
  23.     private void CmdEditCutHandler(Command Cmd)
  24.     {
  25.         Cmd.Enabled = (this.txtDocument.Enabled
  26.         && this.txtDocument.SelectionLength > 0);
  27.     }
  28.     private void CmdEditCopyHandler(Command Cmd)
  29.     {
  30.         Cmd.Enabled = (this.txtDocument.SelectionLength > 0);
  31.     }
  32.     private void CmdEditPasteHandler(Command Cmd)
  33.     {
  34.         Cmd.Enabled = Clipboard.GetDataObject().GetDataPresent(typeof(string));
  35.     }
  36.     #endregion
  37.     #endregion
  38.     #region Command Methods
  39.     #region Cut / Copy / Paste / Mehods
  40.     private void CmdEditCopy(Command Cmd)
  41.     {
  42.         Clipboard.SetText(this.txtDocument.SelectedText);
  43.     }
  44.     private void CmdEditCut(Command Cmd)
  45.     {
  46.         Clipboard.SetText(txtDocument.SelectedText);
  47.         txtDocument.SelectedText = string.Empty;
  48.     }
  49.     private void CmdEditPaste(Command Cmd)
  50.     {
  51.         txtDocument.Paste();
  52.     }
  53.     #endregion
  54.     #endregion
  55.     // ... other code
  56. }