首页 > 其他分享 >RichTextBox控件

RichTextBox控件

时间:2024-02-07 15:22:04浏览次数:21  
标签:intbl 控件 03 RichTextBox cell 2024 Data row

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

效果
image

代码实现

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();
}

标签:intbl,控件,03,RichTextBox,cell,2024,Data,row
From: https://www.cnblogs.com/f-t-q/p/18010959

相关文章

  • 【愚公系列】2024年02月 WPF控件专题 Frame控件详解
    ......
  • 关于UniGui 的UniDateTimePicker控件显示问题
    关于UniGui的UniDateTimePicker控件显示问题本人在使用UniGuiUniDateTimePicker控件的显示问题:在UniForm上使用UniDateTimePicker,显示正常。但在Unigrid的列中使用,就出现显示问题,如下图:解决办法:将UniDateTimePicker的属性usesystemformat设置为True,即可显示正常。如下......
  • 界面控件DevExpress ASP.NET Spreadsheet组件 - 轻松集成电子表格功能!(一)
    DevExpressASP.NETSpreadsheet组件允许您轻松地将电子表格功能合并到任意ASP.NET应用程序,它可以加载、转换和保存工作簿到XLS-XLSx二进制文件格式,还可以导出和导入XLSX、CSV和TXT文件。P.S:DevExpressASP.NETWebForms Controls拥有针对Web表单(包括报表)的110+种UI控件,可利......
  • 【愚公系列】2024年02月 WPF控件专题 Groupbox控件详解
    ......
  • 微信小程序如何实现动态显示和隐藏某个控件
    Hello大家好!我是咕噜铁蛋!微信小程序作为一种轻量级的应用开发平台,越来越受到开发者和用户的关注。在微信小程序的开发过程中,控制元素的显示和隐藏是一个常见的需求。通过动态显示和隐藏某个控件,我们可以根据用户的操作或特定的条件来提供更好的用户体验。本文铁蛋将为为大家详细介......
  • 自定义一个QAbstractItemView控件
    本文是模仿某些软件里的控件样式。在组合框里选择具有两级结构的数据,比如选某省->某市类似的数据。下述代码在VS2015和Qt5.9中测试通过。其运行效果如图。为了展示更多的功能,我还特地实现了滚动条的功能:头文件:classMItemView:publicQAbstractItemView{Q_OBJECTpub......
  • 使控件与窗体边缘对齐
    原文链接:https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/controls/how-to-align-a-control-to-the-edges-of-forms?view=netframeworkdesktop-4.8今天遇到一个问题,VS中中两个控价的位置拉到了一起,可是程序跑起来,中间有很大的空隙,怎么调两个控件的距离都没有用,请教了......
  • 界面控件DevExtreme v23.2新版亮点 - 全新的Fluent主题
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NETCore或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中......
  • c# ComboBox控件的常用一些属性和用法、事件及数据绑定方法
    一、常用属性和用法1、Text:获取或设置与此控件关联的文本。//设置默认值this.comboBox1.Text="请选择内容";//orcomboBox1.Items.Add("请选择内容");comboBox1.SelectedIndex=0;2、SelectedIndex:获取或设置指定当前选定项的索引。(设置新索引会SelectedIndexChanged......
  • TUniDBGrid控件之Summary例子
    TUniDBGrid控件之Summary例子(记录一下,方便以后备查)在这个例子中,主要用到TUniDBGrid、TClientDataSet和TDataSource三个控件。本文除去介绍使用TUniDBGrid控件之Summary外,TClientDataSet使用FieldDefs用于自定义的字段名表(即:不使用dataprovider)参考:Delphi中ClientDataSet的用......