📄 richtextboxextended.cs
字号:
tbbStrikeout.Pushed = fnt.Strikeout; //strikeout button
tbbLeft.Pushed = (rtb1.SelectionAlignment == HorizontalAlignment.Left); //justify left
tbbCenter.Pushed = (rtb1.SelectionAlignment == HorizontalAlignment.Center); //justify center
tbbRight.Pushed = (rtb1.SelectionAlignment == HorizontalAlignment.Right); //justify right
//Check the correct color
foreach(MenuItem mi in cmColors.MenuItems)
mi.Checked = (rtb1.SelectionColor == Color.FromName(mi.Text));
//Check the correct font
foreach(MenuItem mi in cmFonts.MenuItems)
mi.Checked = (fnt.FontFamily.Name == mi.Text);
//Check the correct font size
foreach(MenuItem mi in cmFontSizes.MenuItems)
mi.Checked = ((int)fnt.SizeInPoints == float.Parse(mi.Text));
}
#endregion
#region Update Toolbar Seperators
private void UpdateToolbarSeperators()
{
//Save & Open
if(!tbbSave.Visible && !tbbOpen.Visible)
tbbSeparator3.Visible = false;
else
tbbSeparator3.Visible = true;
//Font & Font Size
if(!tbbFont.Visible && !tbbFontSize.Visible && !tbbColor.Visible)
tbbSeparator5.Visible = false;
else
tbbSeparator5.Visible = true;
//Bold, Italic, Underline, & Strikeout
if(!tbbBold.Visible && !tbbItalic.Visible && !tbbUnderline.Visible && !tbbStrikeout.Visible)
tbbSeparator1.Visible = false;
else
tbbSeparator1.Visible = true;
//Left, Center, & Right
if(!tbbLeft.Visible && !tbbCenter.Visible && !tbbRight.Visible)
tbbSeparator2.Visible = false;
else
tbbSeparator2.Visible = true;
//Undo & Redo
if(!tbbUndo.Visible && !tbbRedo.Visible)
tbbSeparator4.Visible = false;
else
tbbSeparator4.Visible = true;
}
#endregion
#region RichTextBox Selection Change
/// <summary>
/// Change the toolbar buttons when new text is selected
/// and raise event SelChanged
/// </summary>
private void rtb1_SelectionChanged(object sender, System.EventArgs e)
{
//Update the toolbar buttons
UpdateToolbar();
//Send the SelChangedEvent
if (SelChanged != null)
SelChanged(this, e);
}
#endregion
#region Color Click
/// <summary>
/// Change the richtextbox color
/// </summary>
private void Color_Click(object sender, System.EventArgs e)
{
//set the richtextbox color based on the name of the menu item
ChangeFontColor(Color.FromName(((MenuItem)sender).Text));
}
#endregion
#region Font Click
/// <summary>
/// Change the richtextbox font
/// </summary>
private void Font_Click(object sender, System.EventArgs e)
{
// Set the font for the entire selection
ChangeFont(((MenuItem)sender).Text);
}
#endregion
#region Font Size Click
/// <summary>
/// Change the richtextbox font size
/// </summary>
private void FontSize_Click(object sender, System.EventArgs e)
{
//set the richtextbox font size based on the name of the menu item
ChangeFontSize(float.Parse(((MenuItem)sender).Text));
}
#endregion
#region Link Clicked
/// <summary>
/// Starts the default browser if a link is clicked
/// </summary>
private void rtb1_LinkClicked(object sender, System.Windows.Forms.LinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(e.LinkText);
}
#endregion
#region Public Properties
/// <summary>
/// The toolbar that is contained with-in the RichTextBoxExtened control
/// </summary>
[Description("The internal toolbar control"),
Category("Internal Controls"),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ToolBar Toolbar
{
get { return tb1; }
}
/// <summary>
/// The RichTextBox that is contained with-in the RichTextBoxExtened control
/// </summary>
[Description("The internal richtextbox control"),
Category("Internal Controls"),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public RichTextBox RichTextBox
{
get { return rtb1; }
}
/// <summary>
/// Show the save button or not
/// </summary>
[Description("Show the save button or not"),
Category("Appearance")]
public bool ShowSave
{
get { return tbbSave.Visible; }
set { tbbSave.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the open button or not
/// </summary>
[Description("Show the open button or not"),
Category("Appearance")]
public bool ShowOpen
{
get { return tbbOpen.Visible; }
set { tbbOpen.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the stamp button or not
/// </summary>
[Description("Show the stamp button or not"),
Category("Appearance")]
public bool ShowStamp
{
get { return tbbStamp.Visible; }
set { tbbStamp.Visible = value; }
}
/// <summary>
/// Show the color button or not
/// </summary>
[Description("Show the color button or not"),
Category("Appearance")]
public bool ShowColors
{
get { return tbbColor.Visible; }
set { tbbColor.Visible = value; }
}
/// <summary>
/// Show the undo button or not
/// </summary>
[Description("Show the undo button or not"),
Category("Appearance")]
public bool ShowUndo
{
get { return tbbUndo.Visible; }
set { tbbUndo.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the redo button or not
/// </summary>
[Description("Show the redo button or not"),
Category("Appearance")]
public bool ShowRedo
{
get { return tbbRedo.Visible; }
set { tbbRedo.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the bold button or not
/// </summary>
[Description("Show the bold button or not"),
Category("Appearance")]
public bool ShowBold
{
get { return tbbBold.Visible; }
set { tbbBold.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the italic button or not
/// </summary>
[Description("Show the italic button or not"),
Category("Appearance")]
public bool ShowItalic
{
get { return tbbItalic.Visible; }
set { tbbItalic.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the underline button or not
/// </summary>
[Description("Show the underline button or not"),
Category("Appearance")]
public bool ShowUnderline
{
get { return tbbUnderline.Visible; }
set { tbbUnderline.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the strikeout button or not
/// </summary>
[Description("Show the strikeout button or not"),
Category("Appearance")]
public bool ShowStrikeout
{
get { return tbbStrikeout.Visible; }
set { tbbStrikeout.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the left justify button or not
/// </summary>
[Description("Show the left justify button or not"),
Category("Appearance")]
public bool ShowLeftJustify
{
get { return tbbLeft.Visible; }
set { tbbLeft.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the right justify button or not
/// </summary>
[Description("Show the right justify button or not"),
Category("Appearance")]
public bool ShowRightJustify
{
get { return tbbRight.Visible; }
set { tbbRight.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Show the center justify button or not
/// </summary>
[Description("Show the center justify button or not"),
Category("Appearance")]
public bool ShowCenterJustify
{
get { return tbbCenter.Visible; }
set { tbbCenter.Visible = value; UpdateToolbarSeperators(); }
}
/// <summary>
/// Determines how the stamp button will respond
/// </summary>
StampActions m_StampAction = StampActions.EditedBy;
[Description("Determines how the stamp button will respond"),
Category("Behavior")]
public StampActions StampAction
{
get { return m_StampAction; }
set { m_StampAction = value; }
}
/// <summary>
/// Color of the stamp text
/// </summary>
Color m_StampColor = Color.Blue;
[Description("Color of the stamp text"),
Category("Appearance")]
public Color StampColor
{
get { return m_StampColor; }
set { m_StampColor = value; }
}
/// <summary>
/// Show the font button or not
/// </summary>
[Description("Show the font button or not"),
Category("Appearance")]
public bool ShowFont
{
get { return tbbFont.Visible; }
set { tbbFont.Visible = value; }
}
/// <summary>
/// Show the font size button or not
/// </summary>
[Description("Show the font size button or not"),
Category("Appearance")]
public bool ShowFontSize
{
get { return tbbFontSize.Visible; }
set { tbbFontSize.Visible = value; }
}
/// <summary>
/// Show the cut button or not
/// </summary>
[Description("Show the cut button or not"),
Category("Appearance")]
public bool ShowCut
{
get { return tbbCut.Visible; }
set { tbbCut.Visible = value; }
}
/// <summary>
/// Show the copy button or not
/// </summary>
[Description("Show the copy button or not"),
Category("Appearance")]
public bool ShowCopy
{
get { return tbbCopy.Visible; }
set { tbbCopy.Visible = value; }
}
/// <summary>
/// Show the paste button or not
/// </summary>
[Description("Show the paste button or not"),
Category("Appearance")]
public bool ShowPaste
{
get { return tbbPaste.Visible; }
set { tbbPaste.Visible = value; }
}
/// <summary>
/// Detect URLs with-in the richtextbox
/// </summary>
[Description("Detect URLs with-in the richtextbox"),
Category("Behavior")]
public bool DetectURLs
{
get { return rtb1.DetectUrls; }
set { rtb1.DetectUrls = value; }
}
/// <summary>
/// Determines if the TAB key moves to the next control or enters a TAB character in the richtextbox
/// </summary>
[Description("Determines if the TAB key moves to the next control or enters a TAB character in the richtextbox"),
Category("Behavior")]
public bool AcceptsTab
{
get { return rtb1.AcceptsTab; }
set { rtb1.AcceptsTab = value; }
}
/// <summary>
/// Determines if auto word selection is enabled
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -