フォームボタンをクリックするたびに文字列を書き込むRichTextBoxがあります。各ストリングは、ストリング「Long」または「Short」で始まり、改行で終わります。文字列を追加するたびに、RichTextBoxの下部に追加されます。 「Long」で始まる場合は赤、「Short」で始まる場合は青に色付けします。これどうやってするの?
もちろん、SelectionStart、SelectionLength、およびSelectionColorプロパティを使用してこれを行うことができます。それは非常にうまく機能します。
これらのプロパティの詳細については、 このページ をご覧ください。
選択開始プロパティを現在の長さに設定し、追加する文字列の長さを取得し、選択長を設定し、必要に応じて選択色を設定することにより、RichTextBoxテキストの長さを把握し、これに応じて色を付けることができます。追加した文字列ごとにすすぎ、繰り返します。
int length = richTextBox.TextLength; // at end of text
richTextBox.AppendText(mystring);
richTextBox.SelectionStart = length;
richTextBox.SelectionLength = mystring.Length;
richTextBox.SelectionColor = Color.Red;
そんな感じ。それは私がそれが働いたことを覚えている方法です。
私が書いていたプログラムでこれをやっていました。 @itsmattのようなことをしていましたが、少しシンプルに感じました。 Selectioncolor
を設定するだけで、その時点からRichTextBox
が他の色に変更されるまでその色になります。すべての行をテストしている場合、これはうまくいくようで、簡単です。
if(myString == "Long")
{
richTextBox.SelectionColor = Color.Red;
}
else
{
richTextBox.SelectionColor = Color.Green
}
richTextBox.AppendText(myString);