C# Winform中RichTextBox如何设置文本某段字体的颜色

C# Winform 中 RichTextBox如何设置文本某段字体颜色

一.在使用处新增代码

想要更改Text文本中某段需要特殊标注字体的颜色,使用TextBox是很难做到的,因为TextBox支持更改前景色或者背景色,仅支持全部更改,不可能按照需要的显示形式改变,所以可以选用富文本编辑器,也就是—RichTextBox,为了方便理解我会做出简单的解释。
1、直接在需要使用的地方加上如下语句:

List<int> arrylist = calculateIndex(richTextBox1.Text,str); //str为自己的字符串内容
      for(int i = 0; i < arrylist.Count; i++)
          {
             int StrIndex = arrylist[i];
             richTextBox1.Select(StrIndex, str.Length);
             richTextBox1.SelectionColor = Color.Red;
          }

说明:
(1)使用List存储函数calculateIndex返回的一组索引值
(2)for循环,以长度为次数,循环取出其中的每一个值
(3)Select第一参数是指定变色字符串开始的索引值,第二个参数为字符串长度,将这段字符选中
(4)将选定字段的颜色更改为红色

二.calculateIndex计算索引值函数

public List<int> calculateIndex(string RichText, string Str)
        {
            List<int> array = new List<int>();
            int startIndex = 0;
            while (startIndex < RichText.Length)
            {
                int startPosition = RichText.IndexOf(Str, startIndex);
                if (startPosition >= 0)
                {
                    array.Add(startPosition);
                    startIndex = startPosition + Str.Length;
                }
                else
                {
                    break;
                }
            }
            return array;
        }

说明:
(1)这段代码也很简单,就是利用Indexof方法,提取出指定字符串的开始索引值,如果找出索引值,则存储下来,并将下一次的开始索引推进到该字符串之后,如果没有,则跳出当前While循环,最后返回array,由上部分内容承接使用。
(2)如果是动态向RichTextBox中添加内容,并且希望将新增内容变色,也可以使用该方法,但是需要注意将这个方法放在新增之后使用。

另分享:RichTextBox有AppendText方法可以使用,可以直接新增内容到原本的控件中,十分方便,如果需要定位滚动条位置到最新增添的位置,可以使用ScrollToCaret()方法,直接将滚动条移动到最新文本位置

你可能感兴趣的:(C#,字符串,c#,winform)