c# RichTextBox 富文本编辑控件 作者:马育民 • 2025-09-12 22:27 • 阅读:10005 # 介绍 在 C# 的 Windows Forms 中,`RichTextBox` 是一个功能强大的文本编辑控件,支持富文本格式(如字体、颜色、段落样式等),比普通的 `TextBox` 具有更多格式化功能。 以下是 `RichTextBox` 的常见用法示例: # 基本操作(设置和获取文本) ```csharp // 设置文本 richTextBox1.Text = "这是普通文本"; // 设置富文本(带格式) richTextBox1.Rtf = @"{\rtf1\ansi\deff0{\colortbl;\red0\green0\blue0;\red255\green0\blue0;} 这是\b 粗体\b0 文本,这是\cf2 红色\cf0 文本}"; // 获取纯文本 string plainText = richTextBox1.Text; // 获取RTF格式文本 string rtfText = richTextBox1.Rtf; ``` # 文本格式化 ```csharp // 选择部分文本并设置格式 richTextBox1.Select(5, 3); // 从索引5开始选择3个字符 richTextBox1.SelectionFont = new Font("微软雅黑", 12, FontStyle.Bold | FontStyle.Italic); richTextBox1.SelectionColor = Color.Red; richTextBox1.SelectionBackColor = Color.Yellow; // 插入新行 richTextBox1.AppendText(Environment.NewLine); // 插入带格式的文本 richTextBox1.SelectionStart = richTextBox1.TextLength; richTextBox1.SelectionFont = new Font("宋体", 10); richTextBox1.SelectionColor = Color.Blue; richTextBox1.AppendText("新插入的蓝色文本"); ``` # 加载和保存文件 ```csharp // 加载RTF文件 private void LoadRtfFile(string filePath) { if (File.Exists(filePath)) { richTextBox1.LoadFile(filePath, RichTextBoxStreamType.RichText); } } // 保存为RTF文件 private void SaveRtfFile(string filePath) { richTextBox1.SaveFile(filePath, RichTextBoxStreamType.RichText); } // 加载纯文本文件 private void LoadTextFile(string filePath) { if (File.Exists(filePath)) { richTextBox1.LoadFile(filePath, RichTextBoxStreamType.PlainText); } } ``` # 常用属性和方法 ### **属性**: - `Multiline`:是否支持多行文本(默认 `true`) - `ScrollBars`:滚动条样式(`None`/`Horizontal`/`Vertical`/`Both`) - `ReadOnly`:是否只读 - `WordWrap`:是否自动换行 ### **方法**: - `Clear()`:清空内容 - `Copy()`/`Cut()`/`Paste()`:剪贴板操作 - `Find(string)`:查找文本 - `SelectAll()`:全选文本 # 定位 定位到顶部(滚动到顶部) ``` // 将光标移动到文本开头 previewRichTextBox.SelectionStart = 0; // 不选择任何文本 previewRichTextBox.SelectionLength = 0; // 滚动到光标位置(顶部) previewRichTextBox.ScrollToCaret(); ``` # 事件 常用事件包括: - `TextChanged`:文本内容改变时触发 - `SelectionChanged`:选中文本改变时触发 - `LinkClicked`:点击文本中的链接时触发(需设置 `DetectUrls = true`) 示例: ```csharp private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) { System.Diagnostics.Process.Start(e.LinkText); // 打开链接 } ``` `RichTextBox` 适合用于需要文本格式化的场景,如简易编辑器、日志显示、文档查看器等。根据需求,你可以灵活运用其格式控制功能来实现丰富的文本展示效果。 原文出处:http://malaoshi.top/show_1GW1ql1ZWxKG.html