【C#】RichTextBox基本用法和高级用法及示例

server/2024/12/15 22:47:47/

在 Windows Forms 应用程序中,RichTextBox 是一个非常强大的控件,可以用来处理多行文本输入和输出。与普通的 TextBox 不同,RichTextBox 支持富文本格式,比如字体样式、颜色和对齐方式。


基本用法

  1. 拖放控件

    • 在 Visual Studio 中,打开你的 Windows Forms Designer。
    • 从工具箱中找到 RichTextBox,拖放到你的窗体中。
  2. 常见属性

    • Text:设置或获取控件中的文本内容。
    • ReadOnly:是否为只读模式。
    • Multiline:是否允许多行文本(默认就是 true)。
    • ScrollBars:控制滚动条显示(例如RichTextBoxScrollBars.Vertical)。
  3. 代码示例

// 添加文本到 RichTextBox
richTextBox1.Text = "Hello, this is a RichTextBox example!";// 追加文本
richTextBox1.AppendText("\nAppending some more text...");// 设置为只读
richTextBox1.ReadOnly = true;// 获取内容
string currentText = richTextBox1.Text;
MessageBox.Show(currentText);

高级用法

  1. 富文本格式
    • 通过 SelectionFontSelectionColorSelectionAlignment 等属性,可以对选定的文本进行格式化。
// 设置选中文本的字体
richTextBox1.SelectionFont = new Font("Arial", 12, FontStyle.Bold);// 设置选中文本的颜色
richTextBox1.SelectionColor = Color.Red;// 设置选中文本的对齐方式
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
  1. 加载和保存文件
    • RichTextBox 支持加载和保存 .txt.rtf 格式文件。
// 保存到 RTF 文件
richTextBox1.SaveFile("example.rtf", RichTextBoxStreamType.RichText);// 加载 RTF 文件
richTextBox1.LoadFile("example.rtf", RichTextBoxStreamType.RichText);// 保存到纯文本文件
richTextBox1.SaveFile("example.txt", RichTextBoxStreamType.PlainText);
  1. 处理事件
    • 监听用户输入或操作。
private void richTextBox1_TextChanged(object sender, EventArgs e)
{MessageBox.Show("Text changed!");
}
  1. 插入图片
    • RichTextBox 中可以通过 Clipboard 来插入图片。
// 将图片加载到剪贴板
Image img = Image.FromFile("example.jpg");
Clipboard.SetImage(img);// 将图片插入到 RichTextBox
richTextBox1.Paste();

** 示例1**

下面是一个完整的例子,包括文本操作、格式化和文件保存。

using System;
using System.Drawing;
using System.Windows.Forms;public class RichTextBoxExample : Form
{private RichTextBox richTextBox1;private Button btnSave, btnLoad, btnFormat;public RichTextBoxExample(){this.Text = "RichTextBox 示例";this.Size = new Size(500, 400);// 初始化 RichTextBoxrichTextBox1 = new RichTextBox();richTextBox1.Dock = DockStyle.Top;richTextBox1.Height = 200;// 保存按钮btnSave = new Button();btnSave.Text = "保存文本";btnSave.Click += (s, e) =>{richTextBox1.SaveFile("example.rtf", RichTextBoxStreamType.RichText);MessageBox.Show("文本已保存!");};// 加载按钮btnLoad = new Button();btnLoad.Text = "加载文本";btnLoad.Click += (s, e) =>{richTextBox1.LoadFile("example.rtf", RichTextBoxStreamType.RichText);MessageBox.Show("文本已加载!");};// 格式化按钮btnFormat = new Button();btnFormat.Text = "设置格式";btnFormat.Click += (s, e) =>{richTextBox1.SelectionFont = new Font("Comic Sans MS", 14, FontStyle.Italic);richTextBox1.SelectionColor = Color.Blue;};// 布局var panel = new FlowLayoutPanel();panel.Dock = DockStyle.Bottom;panel.Height = 50;panel.Controls.Add(btnSave);panel.Controls.Add(btnLoad);panel.Controls.Add(btnFormat);// 添加控件到窗体this.Controls.Add(richTextBox1);this.Controls.Add(panel);}[STAThread]public static void Main(){Application.Run(new RichTextBoxExample());}
}

小结

RichTextBox 是一个功能强大的控件,适用于需要处理多格式文本的应用场景,例如文档编辑器、聊天界面等。根据需求可以灵活设置格式,甚至支持图文混排。


http://www.ppmy.cn/server/150459.html

相关文章

一键学懂BurpSuite(6)

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

LabVIEW汽车综合参数测量

系统基于LabVIEW虚拟仪器技术,专为汽车带轮生产中的质量控制而设计,自动化测量和检测带轮的关键参数。系统采用PCIe-6320数据采集卡与精密传感器结合,能够对带轮的直径、厚度等多个参数进行高精度测量,并通过比较测量法判定产品合…

“AI数据生成系统:创造数据新动力

嘿,大家好!今天咱们来聊聊一个特别火的话题——AI数据生成系统。这玩意儿,听起来可能有点技术范儿,但其实它就像是我们的创意工厂,能源源不断地产出新鲜、有用的数据。 首先,咱们得搞清楚,AI数据…

23种设计模式之责任链模式

目录 1. 简介2. 代码2.1 AbstractLogger(抽象处理者)2.2 InfoLogger (具体处理者)2.3 DebugLogger (具体处理者)2.4 ErrorLogger (具体处理者)2.5 Test (测试&#xff09…

基于51单片机的简易时钟/定时器闹钟proteus仿真

地址: https://pan.baidu.com/s/1uez4cwZuXpchmihmRqnLEg 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…

性能测试工具有哪些?原理是什么?怎么选择适合的工具?

前言 本篇文章主要简单总结下性能测试工具的原理以及如何选型。性能测试和功能测试不同,性能测试的执行是基本功能的重复和并发,需要模拟多用户,在性能测试执行时需要监控指标参数,同时性能测试的结果不是那么显而易见&#xff0…

Elasticsearch之mapping属性设置讲解与实战

Elasticsearch之Mapping属性设置讲解与实战 1. 引言 1.1 博客目的与读者定位 本篇技术博客旨在为Elasticsearch的中级用户及开发者提供一个深入浅出的Mapping属性设置指南。无论您是正在构建新的搜索应用,还是希望优化现有Elasticsearch集群的性能,本文都将为您提供详尽的…

代码随想录算法训练营第三十二天|动态规划理论基础|LC509.肥波那些数|LC70.爬楼梯|LC746.使用最小花费爬楼梯

动态规划理论基础 解释:动态规划,英文:Dynamic Programming,简称DP;如果某一问题有很多重叠子问题,使用动态规划是最有效的。 动态规划五部曲: 1、确定dp数组(dp table)…