web-dev-qa-db-ja.com

richtextboxでマルチカラーを使用する方法

C#windowsフォームを使用しており、richtextboxがあり、一部のテキストを赤、一部を緑、一部を黒に色付けしたいと思っています。

その方法は?画像が添付されています。

enter image description here

14
Billie

System.Windows.Forms.RichTextBoxには、名前Colorのタイプ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

そのことに注意してください:値を与えるLinesRichTextBox内のテキストを強調表示する場合は、Object Browserを介して追加できるRichTextBox.Find(string str)を使用して計算を回避できます

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

ありがとう、
これがお役に立てば幸いです:)

31

文字列の色を変更し、改行値を挿入する機能を提供するこの拡張メソッドを見つけました:

    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;
    }
13
Mark Kram