当前位置:   article > 正文

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

c# 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

说明:
(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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/230374
推荐阅读
相关标签
  

闽ICP备14008679号