C# Richtextbox 创建、设置字体颜色、添加删除读取行、每行显示指定字数、修改选中文字颜色、用红色标出行

您所在的位置:网站首页 选择文档后三段红色字体 C# Richtextbox 创建、设置字体颜色、添加删除读取行、每行显示指定字数、修改选中文字颜色、用红色标出行

C# Richtextbox 创建、设置字体颜色、添加删除读取行、每行显示指定字数、修改选中文字颜色、用红色标出行

2024-07-13 11:02| 来源: 网络整理| 查看: 265

 

Richtextbox 是 C# 中的富文本编辑框,用于编辑内容比较多的文本,当然也可以用它显示文本,只要把它的背景颜色设置为与它所在控件的背景一致。Richtextbox 创建有两种方法,一种为用控件创建,另一种为用代码创建。它有很多属性,设置或修改它们既可在“属性”窗口又可用代码,本文主要探讨后者。

设置或修改 Richtextbox 字体颜色,既可用具体的颜色名称又可用RGB。Richtextbox 显示的行数与换行符分隔的行数不是一个概念,它的属性 lines 是指后者,而添加删除读取行和每行显示指定字数都是指前者。若要突出显示选中文字,可以用高亮的颜色或大的字体显示,也可以同时用两者;除可标出一行或几行外,还可标出某个指定词组。

 

一、C# Winform Richtextbox 的创建

1、从“工具箱”创建。把“工具箱”中的 Richtextbox 拖到窗体就创建了一个 Richtextbox 控件。

 

2、用代码创建。

创建一个 Richtextbox 控件,同时定义几个属性,然后把它添加到现有窗体,代码如下:

using System.Drawing;  using System.Windows.Forms;

private void CreateRichTextBox()  {    RichTextBox richTextBox1 = new RichTextBox    {      Dock = DockStyle.None,// 不填充,若要填整个窗体,用 Dock = DockStyle.Fill      Font = new Font("Cambria", 10),      ForeColor = Color.Gray,      Size = new Size(600, 400)     };     richTextBox1.Text = "创建一个 richTextBox 控件";     richTextBox1.Location = new Point(10, 10);     this.Controls.Add(richTextBox1);  }

如果要把创建的 Richtextbox 控件添加到一个新建的窗体,只需把 this.Controls.Add(richTextBox1); 改为如下代码:

Form frm = new Form { Controls = { richTextBox1 } };  frm.Width = 670;  frm.Height = 520;  frm.ShowDialog();

在窗体构造函数中调用:

public richtext()  {    InitializeComponent();    CreateRichTextBox();  }

 

二、C# Winform Richtextbox 的属性设置

1、Richtextbox 字体颜色

创建 Richtextbox 时可以定义字体颜色,如以上的 ForeColor = Color.Gray;也可以创建 Richtextbox 后定义,代码如下:

richTextBox1.ForeColor = Color.DimGray;

richTextBox1.ForeColor = Color.FromArgb(255, 108, 105, 105);

FromArgb 的第一个参数为 alpha(透明度),后三个参数为 R、G、B(红、绿、蓝)。

 

2、Richtextbox 字体大小

Font f = new Font("宋体", 10F, FontStyle.Regular, GraphicsUnit.Point);  richTextBox1.Font = f;

如果要设置为粗体,只需把 FontStyle.Regular 改为 FontStyle.Bold,即:

Font f = new Font("宋体", 10F, FontStyle.Bold, GraphicsUnit.Point);

 

3、Richtextbox 的比例因子 ZoomFactor

修改 ZoomFactor,文字和行高会自动增大,例如把它的值改为 1.2,见如下代码:

richTextBox1.ZoomFactor = (float)1.2;

效果如图1所示:

C# Winform Richtextbox 字体颜色

图1

 

 

三、C# Winform Richtextbox 行

(一)Richtextbox 添加和插入新行

1、添加新行到最后

(1)只添加空行

richTextBox1.AppendText( Environment.NewLine); 或 richTextBox1.AppendText("\r\n");

 

(2)添加一行文字

richTextBox1.AppendText("Richtextbox 添加新行\r\n");

\r\n 为换行符,放在后表示在文字后换行;如果要在文字前换行,把它放到文字前即可。

 

2、插入新行

插入新行到第一行:

richTextBox1.Text = richTextBox1.Text.Insert(0, "插入新行到第一行\r\n");

0 表示插入到第一行,如果要插入到其它行,把 0 改为相应行号,例如插入到第 6 行,把 0 改为 6 即可。

 

3、如果 RichTextBox 的内容为空,添加到第一行,否则添加末尾,代码如下:

private void AddTextIntoRichTextBox(string text)  {    if (String.IsNullOrEmpty(richTextBox1.Text))      richTextBox1.AppendText(text);    else      richTextBox1.AppendText( Environment.NewLine + text);

  richTextBox1.ScrollToCaret();//把控件内容滚动到当前插入符号位置  }

 

(二)C# Winform Richtextbox 添加新行且文字为彩色

假如要把一行文字显示为三种颜色。添加文本仍用 AppendText 方法,但默认方法没有此功能,需要重载扩展,代码如下:

using System;  using System.Windows.Forms;  using System.Drawing;

namespace PublicClass  {    public static class RichTextBoxColorExtensions    {      public static void AppendText(this RichTextBox rtb, string text, Color color, Font font, bool isNewLine = false)      {        rtb.SuspendLayout();        rtb.SelectionStart = rtb.TextLength;        rtb.SelectionLength = 0;

      rtb.SelectionColor = color;        rtb.SelectionFont = font;        rtb.AppendText(isNewLine ? $"{text}{ Environment.NewLine}" : text);        rtb.SelectionColor = rtb.ForeColor;        rtb.ScrollToCaret();        rtb.ResumeLayout();      }    }  }

// 添加新行且文字为彩色  private void DifferentColorRichTextBox()  {    string text = "沙糖桔|6元/斤|2050千克||龙眼|5元/斤|685千克||香蕉|4.5元/斤|1258千克";    string[] arr = text.Split(new string[] { "||" }, StringSplitOptions.RemoveEmptyEntries);    Font font = new Font("宋体", 12);    string[] subArr;

  for (int i = 0; i  l.Contains(specificText));  }

 

4、RichTextBox 仅显示前 n 行

(1)显示前 n 行,不能指定每行字数

private void RichTextBoxDisplayNLines(int lineNum)  {    richTextBox1.Lines = richTextBox1.Lines.Take(lineNum).ToArray();  }

调用(仅显示前 5 行):

RichTextBoxDisplayNLines(5);

 

(2)显示前 n 行,能指定每行字数

using System.Text.RegularExpressions;

///   /// 仅显示前 n 行且能指定每行字数  ///   /// 文本  /// 显示行数  /// 每行字数  /// 是否取代文本中的换行符;如果取代,所有行变一行,然后再分行;如果不取代,把原来的每行分为多行  /// 每行指定字数的指定行数的文本  private string RichTextBoxDisplayNLines(string text, int lineNum, int numEachLine, bool replaceLineBreak = false)  {    if (string.IsNullOrEmpty(text) || lineNum 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3