在 Windows Forms 应用程序中,RichTextBox
是一个非常强大的控件,可以用来处理多行文本输入和输出。与普通的 TextBox
不同,RichTextBox
支持富文本格式,比如字体样式、颜色和对齐方式。
基本用法
-
拖放控件
- 在 Visual Studio 中,打开你的 Windows Forms Designer。
- 从工具箱中找到
RichTextBox
,拖放到你的窗体中。
-
常见属性:
Text
:设置或获取控件中的文本内容。ReadOnly
:是否为只读模式。Multiline
:是否允许多行文本(默认就是true
)。ScrollBars
:控制滚动条显示(例如RichTextBoxScrollBars.Vertical
)。
-
代码示例:
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);
高级用法
- 富文本格式
- 通过
SelectionFont
、SelectionColor
、SelectionAlignment
等属性,可以对选定的文本进行格式化。
- 通过
csharp
// 设置选中文本的字体
richTextBox1.SelectionFont = new Font("Arial", 12, FontStyle.Bold);
// 设置选中文本的颜色
richTextBox1.SelectionColor = Color.Red;
// 设置选中文本的对齐方式
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
- 加载和保存文件
RichTextBox
支持加载和保存.txt
或.rtf
格式文件。
csharp
// 保存到 RTF 文件
richTextBox1.SaveFile("example.rtf", RichTextBoxStreamType.RichText);
// 加载 RTF 文件
richTextBox1.LoadFile("example.rtf", RichTextBoxStreamType.RichText);
// 保存到纯文本文件
richTextBox1.SaveFile("example.txt", RichTextBoxStreamType.PlainText);
- 处理事件
- 监听用户输入或操作。
csharp
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
MessageBox.Show("Text changed!");
}
- 插入图片
- 在
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
是一个功能强大的控件,适用于需要处理多格式文本的应用场景,例如文档编辑器、聊天界面等。根据需求可以灵活设置格式,甚至支持图文混排。