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