C# RichTextBox的用法

RichTextBox是一种可用于显示、输入和操作格式文本,除了可以实现TextBox的所有功能,还能提供富文本的显示功能。 控件除具有TextBox 控件的所有功能外,还能设定文字颜色、字体和段落格式,支持字符串查找功能,支持rtf格式等功能。

下面就其的常用到的功能进行介绍。

一、显示滚动条

RichTextBox可设置Multiline属性来控制是否显示滚动套,true为是,false为否。,默认为true。(此项属性在TextBox亦可实现)

滚动条分为两种:水平(Horizontal)滚动条和垂直(Vertical)滚动条,通过RichTextBox的ScrollBars属性设置如何显示滚动条。(此项属性在TextBox亦可实现)

ScrollBars属性值:

1、Both:只有当文本超过RichTextBox的宽度或长度时,才显示水平滚动条或垂直滚动条,或两个滚动条都显示。

2、None:从不显示任何类型的滚动条。

3、Horizontal:只有当文本超过RichTextBox的宽度时,才显示水平滚动条。必须将WordWrap属性设置为false,才会出现这种情况。(下面将会给出解释)

4、Vertical:只有档文本超过RichTextBox的高度时,才显示垂直滚动条。

5、ForcedHorizontal:当WordWrap属性设置为false时,显示水平滚动条。在文本未超过RichTextBox的宽度时,该滚动条显示为浅灰色。

6、ForcedVertical:始终显示垂直滚动条。在文本未超过RichTextBox的长度时,该滚动条显示为浅灰色。

7、ForcedBoth:始终显示垂直滚动条。当WordWrap属性设置为false时,显示水平滚动条。在文本未超过RichTextBox的宽度或长度时,两个滚动条均显示为灰色。

注:RichTextBox的WordWrap属性:用于指示多行文本框控件在必要时是否换行到下一行的开始。当属性为true时,不论ScrollBars属性值是什么,都不会显示水平滚动条。

下面通过几个截图加以描述其区别。(此项属性TextBox亦可实现)

(1)、当WordWrap为true,ScrollBars为Both时:

 

由此可见,WordWrap为true时,一旦文本超过RichTextBox的宽度时,就会自动换行到下一行,自然不需要用到水平滚动条,也就不显示出来了。

(2)、当WordWrap为false,ScrollBars为Both时:

 

由此可知,WordWrap为false时,即使文本超过RichTextBox的宽度,也不会自动换行到下一行,只有用户输入回车时才会换行,并且当文本超过RichTextBox的宽度后,才会显示水平滚动条。

代码实现过程:

private void Form1_Load(object sender, EventArgs e) //窗体的Load事件
{

   richTextBox1.Multiline =  true ;     //将Multiline属性设置为true,实现显示多行
     richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //设置ScrollBars属性实现只显示垂直滚动

}

二、设置字体属性

可通过RichTextBox的Font属性和ForeColor属性设置(Visual Studio2013社区版找不到SelectionFont和SelectionColor属性),也可通过代码实现,如文本字体设置为楷体,字体大小为12,字样是粗体,文本颜色为红色:

private void Form1_Load(object sender, EventArgs e) //窗体的Load事件
{
  richTextBox1.Multiline = true ;  //将Multiline属性设为true,实现显示多行
  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;  //设置ScrollBars属性实现只显示垂直滚动条
  richTextBox1.SelectionFont = new Font ("楷体", 12, FontStyle.Bold);  //设置SelectionFont属性实现控件中的文本为楷体,大小为12,字样是粗体
  richTextBox1.SelectionColor = System.Drawing.Color.Red;    //设置SelectionColor属性实现控件中的文本颜色为红色
}

将RichTextBox控件显示为超链接样式

将以“http://”开头的Web链接地址作为超链接文本时,运行时RichTextBox超链接文本会自动变成蓝色字体且有下划线。

此时点击超链接文本不会有任何响应,需要在RichTextBox的LinkClicked事件中编写代码实现。

private void Form1_Load(object sender, EventArgs e)           //窗体的Load事件
{
  richTextBox1.Multiline = true ;   //将Multiline属性设为true,实现显示多行
  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;   //设置ScrollBars属性实现只显示垂直滚动条
  richTextBox1.Text = "http://www.baidu.com百度一下你就知道";   //设置Text属性
}

private void richTextBox1_LinkClicked(object sender, EventArgs e)
{
  System.Diagnostics.Process.Start(e.LinkText);                   //在控件LinkClicked事件中编写如下代码实现内容中的网址单击后可以访问网址
}

三、设置段落格式

可通过设置SelectionBullet属性将选定的段落设置为项目符号列表的格 式,也可以使用SelectionIndent属性和SelectionHangingIndent属性设置段落相对于控件的左右边缘进行缩进。下面用代 码将控件的SelectionBullet属性设置为true,使控件中的内容以项目符号列表的格式排列。

private void Form1_Load(object sender, EventArgs e)
{
  richTextBox1.Multiline = true ;
    richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical ;
  richTextBox1.SelectionBullet = true ;
}

以下为属性SelectionBullet设为false和true时的差异(前者为false后者为true):

 

通过SelectionIndent属性设置一个整数,该整数表示控件的左边缘和文本的左边缘之间的距离(以像素为单位)。通过SelectionRightIndent属性设置一个整数,该整数表示控件的右边缘与文本的右边缘之间的距离(以像素为单位)。

以下通过代码实现SelectionIndent属性设置。

private void Form1_Load(object sender, EventArgs e)
{
  richTextBox1.Multiline = true ;
  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical ;
  richTextBox1.SelectionIndent = 50 ;
}

差异如下组图:

 

SelectionRightIndent属性与SelectionIndent属性类似,可类比,当然也可以同时使用。

四、常用功能

1.RichTextBox控件的常用属性

1)SelectedText属性、SelectionLength属性、SelectionStart属性——与TextBox控件的属性功能相同。
2)SelectionFont:获取或设置选中的文本或插入点的字体,例如:

richTextBox1.SelectionFont=fontDialog1.Font; //设置为字体对话框中选中的字体

3)SelectionColor:获取或设置选中的文本或插入点的文本颜色。

4)SelectionAlignment:获取或设置应用到当前选定内容或插入点的对齐方式。
5)Lines属性——字符串数组。记录输入到RichText控件中的所有文本,每按两次回车键之间的字符串是该数组的一个元素。
6)Modifyed属性——记录用户是否已修改控件中的文本内容。若已修改,该属性值自动设置为true。
7)HideSelection属性——设置当焦点离开该控件时,选定的文本是否保持突出显示。值为false时突出显示。

2.RichTextBox控件的常用事件

1)SelectionChange事件——控件中选中的文本发生改变时,触发该事件。 
2)TextChanged事件——控件中的文本内容发生改变时,触发该事件。

3.RichTextBox控件的常用方法

1)Clear( )方法——清除RichText控件中用户输入的所有内容。 
2)Copy( )、Cut( )、Paste( )方法——实现RichText控件的剪贴板功能;
3)SelectAll( )方法——选中控件中的所有文本。  4)Find( )方法——实现查找功能。
5)SaveFile( )方法、LoadFile( )方法——保存文本和打开文件。
6)Undo( )方法、Redo( )方法——撤销上一次编辑操作、重做上次撤销的编辑操作。  
说明:常与CanUndo属性和CanRedo属性配合使用。
7)LoadFile()——加载文本文件(*.txt)或RTF文件(*.rtf)。 
8)SaveFile()——保存文本文件(*.txt)或RTF文件(*.rtf)。

4. 将文件加载到RichTextBox 对象中

使用LoadFile( )方法.
(1)一般格式
RichTextBox对象名.LoadFile(文件名,文件类型);  
(2)说明
RichTextBox 控件可以显示纯文本、Unicode 纯文本或 RTF 格式文件。若要显示这些文件,可调用 LoadFile 方法。例如,使用打开文件对话框选择一个文本文件并加载到richTextBox1控件中,代码如下:

openFileDialog1.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
     string fName=openFileDialog1.FileName;
     richTextBox1.LoadFile(fName,RichTextBoxStreamType.PlainText  );
}

RichTextBoxStreamType.PlainText为加载的文件类型,其他可选的枚举值如下:

5. 保存RichTextBox 对象中的文件

用SaveFile( )方法
(1)一般格式
RichTextBox对象名.SaveFile(文件名,文件类型);   
(2)使用说明
同LoadSave( )方法。

//保存RTF格式文件
saveFileDialog1.Filter="RTF文件(*.rtf)|*.rtf"; saveFileDialog1.DefaultExt="rtf";//默认的文件扩展名
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.RichText );

6. 插入图片文件

可借助剪贴板实现.

Clipboard.Clear();   //清空剪贴板
Bitmap bmp = new Bitmap(@"d:\图片1.jpg");  //创建Bitmap类对象
Clipboard.SetImage(bmp);  //将Bitmap类对象写入剪贴板
richTextBox1.Paste();   //将剪贴板中的对象粘贴到RichTextBox1

参考文章

1. (C#)RichTextBox控件

2. RichTextBox控件简介

时间: 2024-10-28 15:48:50

C# RichTextBox的用法的相关文章

C# RichTextBox 制作文本编辑器

本文利用一个简单的小例子[文本编辑器],讲解RichTextBox的用法. Windows窗体中的RichTextBox控件用于显示,输入和操作格式化的文本,RichTextBox除了拥有TextBox控件的所有功能外,还可以显示字体,颜色,链接,从文件中读取和加载图像,以及查找指定的字符.RichTextBox控件通常用于提供类似字体处理程序(如Microsoft Word)的文本操作和显示功能.RichTextBox控件可以显示滚动条,且默认根据需要进行显示. 涉及知识点: Selectio

SplitContainer 控件详细用法(转)

1.可以将 Windows 窗体 SplitContainer 控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板.当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的.使用 SplitContainer 控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中显示哪些对象).这种排列对于显示和浏览信息非常有用.拥有两个面板使您可以聚合不同区域中的信息,并且用户可以轻松地使用拆分条(也称为"拆分器")调整面板的大小.另外,还可以嵌套多个

AvalonDock的基本用法

        AvalonDock是优秀的开源项目,用于创建可停靠式布局,能够在WPF中方便开发出类似VS2010的软件界面.对于复杂的软件系统,大量控件的使用会使的界面变得难以管理.AvalonDock帮我们解决了这一问题.想要在WPF项目中使用AvalonDock的功能,首先要加载AvalonDock所提供的动态库,下载地址:http://avalondock.codeplex.com/releases/view/107371,目前最新的库版本为2.02.下载AvalonDock的动态库与

js中获取时间new date()的用法

js中获取时间new date()的用法 获取时间:   var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay();

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

shell 中seq的用法 echo -n用法

用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数 从1循环到100的两种方法(bash 其它的shell没试过)for x in `seq 1 100`;do echo $x;donefor x in {1..100};do echo $x;done echo -n 不换行输出 $echo -n "123" $echo "456" 最终输出 123456 echo -e 处理特殊字符 若字符串中

sudo的用法

su -l user -C 'COMMAND' 是用user这个用户执行命令 我们一般使用sudo 这个命令 sudo [-u] user COMMAND sudo [-k] COMMAND 清除此前用户的密码. sudo的配置文件/etc/sudoers 配置项为 users    hosts=(runas)    commands users:可以是一个用户的名称也可以是一个组,也可以是一个别名 username #UID user_alias 用户别名的用法 User_Alias NETA

几招学会 Python 3 中 PyMongo 的用法

本文和大家分享的是Python3下MongoDB的存储操作相关内容,在看本文之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库.下面进入正题,一起来看看吧,希望对大家学习Python3有所帮助. 连接MongoDB 连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入MongoDB的IP及端口即可,第一个参数为地址host,第二个参数为端口port,端口如果不传默认是27017. import pymongo cl