首页 > 编程笔记 > C#笔记 阅读:59

C# RichTextBox富文本框的用法(非常详细,附带实例)

RichTextBox 目前没有统一的中文翻译,但是可以翻译为富文本框,其图标如下所示:


RichTextBox 是加强功能的文本框(TextBox),默认就是用于执行简单的文件编辑,所以内部有比较多的编辑功能,一般双击此图标,就可以在窗体内创建此控件,然后可以依需要拖曳控件四周来更改 RictTextBox 的大小。

C# RichTextBox常用属性

RichTextBox 的许多属性和 TextBox 的相同,和其他控件一样可以在属性窗口设定,或是使用程序代码设定。下列是其不同于 TextBox 的常用属性。

1) Dock

默认属性是 None,表示不占满窗体的空间,如果设为 Fill,则表示占满窗体空间,特别是设计文件编辑程序时,可以如此设定。可以用属性窗口方式设定,如右图所示。


也可以用下列程序代码设定:
richTextBox1.Dock = DockStyle.Fill;

2) MultiLine

默认是 true,表示可以编辑多行文件。

3) ScrollBars

取得或是设定一个值,值表示 RichTextBox 要显示的滚动条类型,有下列 7 种选项:

4) SelectionBackColor

取得或是设定一个值,表示目前选择的文字或是插入点的背景色彩。

5) SelectionBullet

取得或是设定一个值,表示样式符号是否套用目前选择的文字或是插入点。

6) SelectionColor

取得或是设定一个值,表示目前选择的文字或是插入点的颜色。

7) SelectionFont

取得或是设定一个值,表示目前选择的文字或是插入点的字体。

8) SelectionLength

取得或是设定一个值,表示目前选择的文字的字符数。

9) WordWrap

可以设定是否自动换行,默认是true,表示在不使用水平滚动条时,如果文字超出该行范围就会自动换行。如果是false,则不会自动换行,文字会向右卷动。

C# RichTextBox常用方法

RichTextBox 控件常用方法如下:

C#读取和保存文件

这里所谓的读取文件也可以称为下载文件,方法如下:

C# SelectionChanged事件

当选择的内容更改时,会产生 SelectionChanged 事件。

【实例】RichTextBox 的基础应用,每当选择了文字时,会用下方的 TextBox 显示选择的文字。
namespace ch
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void richTextBox1_SelectionChanged(object sender, EventArgs e)
        {
            textBox1.Text = richTextBox1.SelectedText;
        }
    }
}
执行结果为:


建议读者可以不断按 a,观察 RichTextBox 的变化。下方左图中 ch_10.sln 属性使用默认,可以看到当超出 RichTextBox 范围时,出现垂直滚动条。下方中间图是 ch10_1.sln 执行初的界面,有灰色的垂直滚动条,主要是增加指令将 ScrollBars 属性设为 ForcedVertical 时的界面,下列是程序代码的设定:
richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedVertical;
下方右图是不断按 a 的结果:

C# RichTextBox控件实例

RichTextBox 也可以编辑图文并茂的文件,可以先将图片加载至 Clipboard 剪贴板中,然后贴入 RichTextBox,语法如下:
Clipboard.Clear(); // 清除剪贴板
Bitmap figure = new Bitmap("figure file"); // 创建图片对象
Clipboard.SetImage(figure); // 图片加载剪贴板
richTextBox1.Paste(); // 粘贴

将 sse.gif 图片加载至 RichTextBox 中,然后编辑文字:
namespace ch
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_click(object sender, EventArgs e)
        {
            Clipboard.Clear();      // 清除剪贴板
            Bitmap figure = new Bitmap("sse.gif");  // 建立图片对象
            Clipboard.SetImage(figure);             // 加载对象到剪贴板
            richTextBox1.Paste();                   // 剪贴板对象粘贴
        }
    }
}
执行结果为:

相关文章