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

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


基本用法

  1. 拖放控件

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

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

csharp 复制代码
// 添加文本到 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 等属性,可以对选定的文本进行格式化。
csharp 复制代码
// 设置选中文本的字体
richTextBox1.SelectionFont = new Font("Arial", 12, FontStyle.Bold);

// 设置选中文本的颜色
richTextBox1.SelectionColor = Color.Red;

// 设置选中文本的对齐方式
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
  1. 加载和保存文件
    • RichTextBox 支持加载和保存 .txt.rtf 格式文件。
csharp 复制代码
// 保存到 RTF 文件
richTextBox1.SaveFile("example.rtf", RichTextBoxStreamType.RichText);

// 加载 RTF 文件
richTextBox1.LoadFile("example.rtf", RichTextBoxStreamType.RichText);

// 保存到纯文本文件
richTextBox1.SaveFile("example.txt", RichTextBoxStreamType.PlainText);
  1. 处理事件
    • 监听用户输入或操作。
csharp 复制代码
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
    MessageBox.Show("Text changed!");
}
  1. 插入图片
    • RichTextBox 中可以通过 Clipboard 来插入图片。
csharp 复制代码
// 将图片加载到剪贴板
Image img = Image.FromFile("example.jpg");
Clipboard.SetImage(img);

// 将图片插入到 RichTextBox
richTextBox1.Paste();

** 示例1**

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

csharp 复制代码
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);

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

相关推荐
你怎么知道我是队长4 小时前
C语言---头文件
c语言·开发语言
期待のcode4 小时前
Java虚拟机的运行模式
java·开发语言·jvm
我是唐青枫4 小时前
C#.NET ConcurrentDictionary<TKey, TValue> 深度解析:原理与实践
c#·.net
hqwest4 小时前
码上通QT实战25--报警页面01-报警布局设计
开发语言·qt·qwidget·ui设计·qt布局控件
a程序小傲4 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
HellowAmy4 小时前
我的C++规范 - 玩一个小游戏
开发语言·c++·代码规范
徐先生 @_@|||5 小时前
Palantir Foundry 五层架构模型详解
开发语言·python·深度学习·算法·机器学习·架构
tang777896 小时前
爬虫如何绕过绕过“5秒盾”Cloudflare:从浏览器指纹模拟到Rust求解之不完全指南
开发语言·爬虫·rust·cloudflare
Yuer20256 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai
hqwest6 小时前
码上通QT实战26--系统设置01-系统设置布局
开发语言·qt·qss·qt基础控件·qt布局控件·qt表格控件