RichTextBox控件
RichTextBox控件用法
基本用法
基本用法不做赘述
富文本用法
RTF文档是纯文本文件,可以在不同的软件,和平台之间进行交换和共享,且可以保留文本样式、字体、颜色等格式信息,也可以添加表格。
RichTextBox控件中支持RTF格式的文档,可以使流水日志具有各种各样的格式,从而方便查看
绘制表格
规则如下
{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}}
{\colortbl ;\red0\green0\blue0;}
\pard\plain\fs20
\trowd\trgaph70
\intbl\cellx3000 Column1\cell\cellx6000 Column2\cell\cellx9000 Column3\cell\row
\intbl
2024/2/7 14:59:03\cell Data 1-2\cell Data 1-3\cell \row
\intbl
2024/2/7 14:59:03\cell Data 2-2\cell Data 2-3\cell \row
\intbl
2024/2/7 14:59:03\cell Data 3-2\cell Data 3-3\cell \row
\intbl
2024/2/7 14:59:03\cell Data 4-2\cell Data 4-3\cell \row
\intbl
2024/2/7 14:59:03\cell Data 5-2\cell Data 5-3\cell \row
效果
代码实现
private void button1_Click(object sender, EventArgs e)
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Column1");
dataTable.Columns.Add("Column2");
dataTable.Columns.Add("Column3");
for (int i = 1; i <= 5; i++)
{
dataTable.Rows.Add($"{DateTime.Now}", $"Data {i}-2", $"Data {i}-3");
}
// 将 DataTable 转换为 RTF 格式
string rtf = DataTableToRtf(dataTable);
// 将 RTF 格式的内容设置为 RichTextBox 的内容
// 将光标定位到文本末尾
richTextBox1.SelectionStart = richTextBox1.TextLength;
// 设置富文本
richTextBox1.SelectedRtf = rtf;
richTextBox1.AppendText(rtf);
}
// 将 DataTable 转换为 RTF 格式
string DataTableToRtf(DataTable dataTable)
{
StringBuilder rtf = new StringBuilder();
rtf.AppendLine(@"{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}}"); // 定义字体
rtf.AppendLine(@"{\colortbl ;\red0\green0\blue0;}"); // 定义颜色
rtf.AppendLine(@"\pard\plain\fs20"); // 设置默认字号
rtf.AppendLine(@"\trowd\trgaph70"); // 设置表格行间距
// 添加表头
rtf.Append($@"\intbl");
// 添加表头
foreach (DataColumn column in dataTable.Columns)
{
rtf.Append($@"\cellx{3000 * (dataTable.Columns.IndexOf(column) + 1)} {column.ColumnName}\cell");
}
rtf.AppendLine(@"\row");
// 添加表格内容
foreach (DataRow row in dataTable.Rows)
{
rtf.AppendLine(@"\intbl");
foreach (object cell in row.ItemArray)
{
rtf.Append(cell.ToString() + @"\cell ");
}
rtf.AppendLine(@"\row");
}
return rtf.ToString();
}