winforms C#将字符串颜色更改为一个RTF行

nfg76nw0  于 2023-03-31  发布在  C#
关注(0)|答案(1)|浏览(163)

尝试让这个函数改变它接收到的行的颜色。我用richtextbox1做了一个小记事本。
我试过这个代码:

private string changeLineColor(string lineIn)
{
    string sb = lineIn;
    string mycolor = Color.Red.ToString();        
    foreach (char c in mycolor)
    {
        sb.Append(c);
    }
    return sb.ToString();
}
lstz6jyr

lstz6jyr1#

您可以尝试以下扩展方法:

public static class RichTextBoxExt
{
    public static string AddColoredLine(this RichTextBox rtb, string line, Color tcolor)
    {
        int pos = rtb.SelectionStart;
        int len = rtb.SelectionLength;
        int end = rtb.TextLength;
        // Appends text to the current text of a text box.
        rtb.AppendText(line);
        rtb.SelectionStart = end;
        rtb.SelectionLength = line.Length;
        rtb.SelectionColor = tcolor;
        // Restore cursor position                   
        rtb.Select(pos, len); 
        return line;
    }
}

它附加彩色文本并恢复预览选择和光标位置。
像这样使用它:richTextBox1.AddColoredLine("some_text", Color.Red);
你可以在这里找到一个类似的例子:
Change color of text within a WinForms RichTextBox

相关问题