15

我使用 C# windows 窗体,我有richtextbox,我想将一些文本涂成红色,一些用绿色和一些黑色。

怎么做?附图片。

在此处输入图像描述

4

3 回答 3

33

System.Windows.Forms.RichTextBox有一个Colorname 类型的属性,SelectionColor它获取或设置当前选择或插入点的文本颜色。您可以使用此属性RichTextBox用您指定的颜色标记您的特定字段。

例子

RichTextBox _RichTextBox = new RichTextBox(); //Initialize a new RichTextBox of name _RichTextBox
_RichTextBox.Select(0, 8); //Select text within 0 and 8
_RichTextBox.SelectionColor = Color.Red; //Set the selected text color to Red
_RichTextBox.Select(8, 16); //Select text within 8 and 16
_RichTextBox.SelectionColor = Color.Green; //Set the selected text color to Green
_RichTextBox.Select(0,0); //Select text within 0 and 0

请注意:如果您想突出显示in 中的文本RichTextBox.Find(string str),则可以通过使用 which 来避免计算Object BrowserLinesRichTextBox

例子

RichTextBox _RichTextBox = new RichTextBox(); //Initialize a new RichTextBox of name _RichTextBox
_RichTextBox.Find("Account 12345, deposit 100$, balance 200$"); //Find the text provided
_RichTextBox.SelectionColor = Color.Green; //Set the selected text color to Green

谢谢,
我希望你觉得这有帮助:)

于 2012-11-04T17:21:09.887 回答
12

我找到了这个扩展方法,它使您能够更改字符串的颜色以及插入换行符值:

    public static void AppendText(this RichTextBox box, string text, Color color, bool AddNewLine = false)
    {
        if (AddNewLine)
        {
            text += Environment.NewLine;
        }

        box.SelectionStart = box.TextLength;
        box.SelectionLength = 0;

        box.SelectionColor = color;
        box.AppendText(text);
        box.SelectionColor = box.ForeColor;
    }
于 2013-03-20T19:10:09.920 回答
-1

您可以使用 Run 对象在运行时更改颜色

private Run GetForegroundColor(string strInformation, Brush color)
        {
            Run noramlRun = new Run(strInformation);
            noramlRun.Foreground = color;
            return noramlRun;
        }

对于更复杂的场景,例如根据要求更改颜色,然后访问打击链接

https://sites.google.com/site/greateindiaclub/mobil-apps/windows8/customwpfrichtextboxwithcolorchangeandhighlightfunctionality

于 2014-11-26T12:42:10.840 回答