Build Menu for a RichTextBox editor : RichTextBox « GUI Windows Forms « C# / CSharp Tutorial

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » GUI Windows Forms » RichTextBox 
23.20.4.Build Menu for a RichTextBox editor
Build Menu for a RichTextBox editor
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

public class RichTextBoxes : Form
{
  RichTextBox rtxt;

  public RichTextBoxes()
  {
    Size = new Size(400500);
               
    rtxt = new RichTextBox();
    rtxt.Parent = this;
    rtxt.Text = "Enter text here.";
    rtxt.Multiline = true;
    rtxt.BorderStyle = BorderStyle.Fixed3D;
    rtxt.ScrollBars = RichTextBoxScrollBars.ForcedBoth;  
    rtxt.Dock = DockStyle.Fill;
    rtxt.DetectUrls = true;       
    rtxt.AutoWordSelection = true;  
    rtxt.BulletIndent = 10;
    rtxt.ShowSelectionMargin = true;

    MenuItem mnuImport = new MenuItem("&Import",new EventHandler(mnuImport_Click));
    MenuItem mnuFile = new MenuItem("&File",new MenuItem[] {mnuImport});

    MenuItem mnuDash1 = new MenuItem("-");
    MenuItem mnuDash2 = new MenuItem("-");
    MenuItem mnuUndo = new MenuItem("&Undo",new EventHandler(mnuUndo_Click),Shortcut.CtrlZ);
    MenuItem mnuCut = new MenuItem("Cu&t",  new EventHandler(mnuCut_Click),  Shortcut.CtrlX);
    MenuItem mnuCopy = new MenuItem("&Copy",new EventHandler(mnuCopy_Click),Shortcut.CtrlC);
    MenuItem mnuCopyRtf = new MenuItem("Copy &Rtf",  new EventHandler(mnuCopyRtf_Click));
    MenuItem mnuPaste = new MenuItem("&Paste",new EventHandler(mnuPaste_Click),Shortcut.CtrlV);
    MenuItem mnuDelete = new MenuItem("&Delete",new EventHandler(mnuDelete_Click));
    MenuItem mnuSelectAll = new MenuItem("Select &All",  new EventHandler(mnuSelectAll_Click),Shortcut.CtrlA);
    MenuItem mnuSelect5 = new MenuItem("Select First &5",new EventHandler(mnuSelect5_Click),Shortcut.Ctrl5);
    MenuItem mnuClear = new MenuItem("Clea&r",new EventHandler(mnuClear_Click));
    MenuItem mnuEdit = new MenuItem("&Edit",new MenuItem[] {mnuUndo, mnuDash1, 
                    mnuCut, mnuCopy, mnuCopyRtf, mnuPaste, 
                    mnuDelete, mnuDash2, mnuSelectAll, 
                    mnuSelect5, mnuClear});

    MenuItem mnuScrollToCaret = new MenuItem("&Scroll to Caret",new EventHandler(mnuScrollToCaret_Click));
    MenuItem mnuView = new MenuItem("&View",new MenuItem[] {mnuScrollToCaret});
    
    MenuItem mnuAlignLeft = new MenuItem("Align&Left",new EventHandler(mnuAlignLeft_Click));
    MenuItem mnuAlignRight = new MenuItem("Align&Right",new EventHandler(mnuAlignRight_Click));
    MenuItem mnuAlignCenter = new MenuItem("Align&Center",new EventHandler(mnuAlignCenter_Click));

    MenuItem mnuBullet = new MenuItem("&Bullet",new EventHandler(mnuBullet_Click));
    MenuItem mnuAlign = new MenuItem("&Align",new MenuItem[] {mnuAlignLeft, mnuAlignRight, mnuAlignCenter});
    MenuItem mnuRed = new MenuItem("&Red",new EventHandler(mnuRed_Click));
    MenuItem mnuBold = new MenuItem("Bo&ld",new EventHandler(mnuBold_Click));
    MenuItem mnuHang = new MenuItem("&Hanging Indent",new EventHandler(mnuHang_Click));
    MenuItem mnuIndent = new MenuItem("&Indent",new EventHandler(mnuIndent_Click));
    MenuItem mnuRightIndent = new MenuItem("&Right Indent",  new EventHandler(mnuRightIndent_Click));
    MenuItem mnuFormat = new MenuItem("For&mat",new MenuItem[] {mnuBullet, mnuAlign, 
                    mnuRed, mnuBold, mnuHang, mnuIndent, 
                    mnuRightIndent});

    Menu = new MainMenu(new MenuItem[] {mnuFile, mnuEdit, 
                    mnuView, mnuFormat});

  }
  static void Main() 
  {
    Application.Run(new RichTextBoxes());
  }

  private void mnuImport_Click(object sender, EventArgs e)
  {
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.InitialDirectory = @"c:\";
    ofd.Filter = "RTF files (*.rtf)|*.rtf|" +
                 "All files (*.*)|*.*";
    ofd.FilterIndex = 1;              //  1 based index
    
    if (ofd.ShowDialog() == DialogResult.OK)
    {
      try
      {
        StreamReader reader = new StreamReader(ofd.FileName);
        rtxt.Rtf = reader.ReadToEnd();
        reader.Close();
      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message);
        return;
      }
    }
  }

  private void mnuUndo_Click(object sender, EventArgs e)
  {
    if (rtxt.CanUndo == true)
    {
      rtxt.Undo();
      rtxt.ClearUndo();
    }
  }

  private void mnuCut_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectedText != "")
      rtxt.Cut();
  }

  private void mnuCopy_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionLength > 0)
      rtxt.Copy();
  }

  private void mnuCopyRtf_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionLength > 0)
    {
      Clipboard.SetDataObject(rtxt.SelectedRtf);
    }
  }

  private void mnuPaste_Click(object sender, EventArgs e)
  {
    if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
    {
      if (rtxt.CanUndo == true)
      {
        if (rtxt.SelectionLength > 0)
        {
          if (MessageBox.Show(
            "Do you want to overwrite the currently selected text?", 
            "Cut & Paste", MessageBoxButtons.YesNo) == DialogResult.No)
            rtxt.SelectionStart = rtxt.SelectionStart + 
                                  rtxt.SelectionLength;
        }
        rtxt.Paste();
      }
    }
  }

  private void mnuDelete_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionLength > 0)
      rtxt.SelectedText = "";
  }

  private void mnuClear_Click(object sender, EventArgs e)
  {
    rtxt.Clear();
  }


  private void mnuSelect5_Click(object sender, EventArgs e)
  {
    if (rtxt.Text.Length >= 5)
    {
      rtxt.Select(0,5);
    }
    else
    {
      rtxt.Select(0,rtxt.Text.Length);
    }
  }

  private void mnuSelectAll_Click(object sender, EventArgs e)
  {
    rtxt.SelectAll();
  }

  private void mnuScrollToCaret_Click(object sender, EventArgs e)
  {
    rtxt.ScrollToCaret();
  }

  private void mnuBullet_Click(object sender, EventArgs e)
  {
    rtxt.SelectionBullet = !rtxt.SelectionBullet;
  }

  private void mnuAlignLeft_Click(object sender, EventArgs e)
  {
    rtxt.SelectionAlignment = HorizontalAlignment.Left;
  }

  private void mnuAlignRight_Click(object sender, EventArgs e)
  {
    rtxt.SelectionAlignment = HorizontalAlignment.Right;
  }

  private void mnuAlignCenter_Click(object sender, EventArgs e)
  {
    rtxt.SelectionAlignment = HorizontalAlignment.Center;
  }

  private void mnuRed_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionColor == Color.Red)
      rtxt.SelectionColor = Color.Black;
    else
      rtxt.SelectionColor = Color.Red;
  }

  private void mnuBold_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionFont.Bold )
      rtxt.SelectionFont = new Font(rtxt.SelectionFont, FontStyle.Regular);
    else
      rtxt.SelectionFont = new Font(rtxt.SelectionFont, FontStyle.Bold);
  }

  private void mnuHang_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionHangingIndent == 10 )
      rtxt.SelectionHangingIndent = 0;
    else
      rtxt.SelectionHangingIndent = 10;
  }

  private void mnuIndent_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionIndent == 10 )
      rtxt.SelectionIndent = 0;
    else
      rtxt.SelectionIndent = 10;
  }

  private void mnuRightIndent_Click(object sender, EventArgs e)
  {
    if (rtxt.SelectionRightIndent == 50 )
      rtxt.SelectionRightIndent = 0;
    else
      rtxt.SelectionRightIndent = 50;
  }
}
23.20.RichTextBox
23.20.1.LoadFile SaveFile
23.20.2.RichTextBox: font
23.20.3.Editor based on RichTextBoxEditor based on RichTextBox
23.20.4.Build Menu for a RichTextBox editorBuild Menu for a RichTextBox editor
23.20.5.RichTextBox based Text Editor
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.