• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C# RichTextBox制作文本编辑器

C# RichTextBox制作文本编辑器

作者:飞翔的月亮 字体:[增加 减小] 来源:互联网 时间:2017-05-28

飞翔的月亮 通过本文主要向大家介绍了马桶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



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#利用ReportViewer生成报表
  • C#基于正则去掉注释的方法示例
  • C#中new的用法及与override的区别分析
  • C#实现两个richtextbox控件滚动条同步滚动的简单方法
  • C# for循环的经典案例集锦
  • C#操作word的方法示例
  • C#使用WebClient登录网站并抓取登录后的网页信息实现方法
  • C# WinForm制作异形窗体与控件的方法
  • C#实现Excel表数据导入Sql Server数据库中的方法
  • C#使用NPOI上传excel

相关文章

  • 2017-05-28C#入门之窗体的简单用法实例
  • 2017-05-28string类的使用方法详解
  • 2017-05-28C#遍历子目录的方法
  • 2017-05-28C#函数式程序设计之用闭包封装数据的实现代码
  • 2017-05-28C#中winform使用相对路径读取文件的方法
  • 2017-05-28C#读取目录下所有指定类型文件的方法
  • 2017-05-28C#学习笔记整理_深入剖析构造函数、析构函数
  • 2017-05-28使用VS2005自带的混淆器防止你的程序被反编译的方法
  • 2017-05-28解析美国东部时间与北京时间相互转换的实现代码
  • 2017-05-28解析使用C# lock同时访问共享数据

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#入门之checked和unchecked的区别实例解析
    • c#递归生成XML实例
    • C#中DataSet转化为实体集合类的方法
    • WMI获取硬件信息封装函数方法(联想台式机出厂编号 CPUID BIOS序列号 硬盘信息 显卡信息 MAC地址)
    • C#采用OpenXml实现给word文档添加文字
    • C#获取所有SQL Server数据库名称的方法
    • C#实现缩放字体的方法
    • C#无损高质量压缩图片实现代码
    • 使用c#在word文档中创建表格的方法详解
    • 基于C#实现的木马程序实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有