飞翔的月亮 通过本文主要向大家介绍了马桶c的个人空间,c语言,欲情 c max,维生素c,crh2c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
本文利用一个简单的小例子【文本编辑器】,讲解RichTextBox的用法。
Windows窗体中的RichTextBox控件用于显示,输入和操作格式化的文本,RichTextBox除了拥有TextBox控件的所有功能外,还可以显示字体,颜色,链接,从文件中读取和加载图像,以及查找指定的字符。RichTextBox控件通常用于提供类似字体处理程序(如Microsoft Word)的文本操作和显示功能。RichTextBox控件可以显示滚动条,且默认根据需要进行显示。
涉及知识点:
- SelectionFont 获取或设置当前选定文本或插入点的字体。
- FontStyle 指定应用到文本的字形信息。
- SelectionAlignment 获取或设置应用到当前选定内容或插入点的对齐方式。
- SelectionIndent 获取或设置所选内容开始行的缩进距离(以像素为单位)。
- SelectionCharOffset 获取或设置控件中的文本是显示在基线上、作为上标还是作为基线下方的下标。
- SelectionColor 获取或设置当前选定文本或插入点的文本颜色。
- SelectionBackColor 获取或设置在 System.Windows.Forms.RichTextBox 控件中选中文本时文本的颜色。
- SelectionBullet 获取或设置一个值,通过该值指示项目符号样式是否应用到当前选定内容或插入点。
- Clipboard Paste 粘贴指定剪贴板格式的剪贴板内容【插入图片时使用】。
- Find 在对搜索应用特定选项的情况下,在 System.Windows.Forms.RichTextBox 控件的文本中搜索位于控件内特定位置的字符串。
效果图如下【以下设置文本对应的格式】:

核心代码如下
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoRichText.Model
{
public class DefaultRickFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
}
}
/// <summary>
/// 加粗格式
/// </summary>
public class BoldRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
Font oldFont = rtbInfo.SelectionFont;
Font newFont;
if (oldFont.Bold)
{
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold);//支持位于运算
}
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);
}
rtbInfo.SelectionFont = newFont;
}
}
/// <summary>
/// 斜体
/// </summary>
public class ItalicRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
Font oldFont = rtbInfo.SelectionFont;
Font newFont;
if (oldFont.Italic)
{
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);
}
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Italic);
}
rtbInfo.SelectionFont = newFont;
rtbInfo.Focus();
}
}
/// <summary>
/// 下划线
/// </summary>
public class UnderLineRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
Font oldFont = rtbInfo.SelectionFont;
Font newFont;
if (oldFont.Underline)
{
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Underline);
}
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Underline);
}
rtbInfo.SelectionFont = newFont;
rtbInfo.Focus();
}
}
/// <summary>
/// 删除线
/// </summary>
public class StrikeLineRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
Font oldFont = rtbInfo.SelectionFont;
Font newFont;
if (oldFont.Underline)
{
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Strikeout);
}
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Strikeout);
}
rtbInfo.SelectionFont = newFont;
rtbInfo.Focus();
}
}
/// <summary>
/// 左对齐
/// </summary>
public class LeftRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
rtbInfo.SelectionAlignment = HorizontalAlignment.Left;
rtbInfo.Focus();
}
}
/// <summary>
/// 居中对齐
/// </summary>
public class CenterRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
if (rtbInfo.SelectionAlignment == HorizontalAlignment.Center)
{
rtbInfo.SelectionAlignment = HorizontalAlignment.Left;
}
else
{
rtbInfo.SelectionAlignment = HorizontalAlignment.Center;
}
rtbInfo.Focus();
}
}
/// <summary>
/// 右对齐
/// </summary>
public class RightRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
if (rtbInfo.SelectionAlignment == HorizontalAlignment.Right)
{
rtbInfo.SelectionAlignment = HorizontalAlignment.Left;
}
else
{
rtbInfo.SelectionAlignment = HorizontalAlignment.Right;
}
rtbInfo.Focus();
}
}
/// <summary>
/// 缩进对齐
/// </summary>
public class IndentRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
//每次以10个像素进行缩进
rtbInfo.SelectionIndent = rtbInfo.SelectionIndent + 10;
rtbInfo.Focus();
}
}
/// <summary>
/// 缩进对齐
/// </summary>
public class OutIndentRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
//每次以10个像素进行缩进
rtbInfo.SelectionIndent = rtbInfo.SelectionIndent - 10;
rtbInfo.Focus();
}
}
/// <summary>
/// 下标
/// </summary>
public class SubScriptRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
if (rtbInfo.SelectionCharOffset < 0)
{
rtbInfo.SelectionCharOffset = 0;
}
else {
rtbInfo.SelectionCharOffset = -5;
}
rtbInfo.Focus();
}
}
/// <summary>
/// 上标
/// </summary>
public class SuperScriptRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
if (rtbInfo.SelectionCharOffset > 0)
{
rtbInfo.SelectionCharOffset = 0;
}
else {
rtbInfo.SelectionCharOffset = 5;
}
rtbInfo.Focus();
}
}
/// <summary>
/// 字体
/// </summary>
public class FontRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
FontDialog f = new FontDialog();
if (f.ShowDialog() == DialogResult.OK)
{
FontFamily family = f.Font.FontFamily;
rtbInfo.SelectionFont = new Font(family, rtbInfo.SelectionFont.Size, rtbInfo.SelectionFont.Style);
}
rtbInfo.Focus();
}
}
/// <summary>
/// 文本颜色
/// </summary>
public class ForeColorRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
ColorDialog f = new ColorDialog();
if (f.ShowDialog() == DialogResult.OK)
{
rtbInfo.SelectionColor = f.Color;
}
rtbInfo.Focus();
}
}
/// <summary>
/// 文本背景颜色
/// </summary>
public class BgColorRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
ColorDialog f = new ColorDialog();
if (f.ShowDialog() == DialogResult.OK)
{
rtbInfo.SelectionBackColor = f.Color;
}
rtbInfo.Focus();
}
}
/// <summary>
/// UL列表,项目符号样式
/// </summary>
public class UlRichFormat : BaseRichFormat
{
public override void SetFormat(RichTextBox rtbInfo)
{
if (rtbInfo.SelectionBullet)
{
rtbInfo.SelectionBullet = false;
}
else {
rtbInfo.SelectionBullet = true;
rtbInfo.BulletIndent = 10;
}
rtbInfo.Focus();
}
}
/// <summary>
/// 图片插入
/// </summary>
public class PicRichFormat : BaseRichFormat
{
public override void SetForma

