2016-07-07 11 views
1

RichTextBoxにテキストを追加するためのフォームには、以下のコードがあります。 SetTextは、新しいテキストを取得し、richTextbox2に追加richTextBox固有のテキストを黄色で1回、赤色で1回着色する方法はありますか?

public void SetText(string text) 
{ 
    richTextBox2.Text = text; 
    SetRichTextBoxColors(true); 
} 

private void SetRichTextBoxColors(bool yellow) 
{ 
    if (yellow) 
    { 
     // color text in red 
    } 
    else 
    { 
     // color text in yellow 
    } 
} 

各ボタンをクリックしてください。

private void button1_Click(object sender, EventArgs e) 
{ 
    _form1.SetText(textBox1.Text); 
} 

何をすべき: 私は私がした新しい形式では、それはその後、赤、再び赤そして黄色になります次回は...

その後、初めて追加したテキストが黄色になることをしたいです私はそれを動作させるためにSetRichTextBoxColorsメソッドに入れた?

+0

あなたの要件は十分ではありません。現在直面している難しさは何ですか? –

+0

@ un-lucky SetTextでは、いったんそれが一度成立すればそれは真実で一度偽になるでしょうか? –

+0

TextBoxからRichTextBoxへのテキストを追加したい場合、TextBoxのテキストとRichBoxのテキストが同じであれば、色は赤で、それ以外の場合は黄色になります。私は正しい? –

答えて

2

フォームレベルでフラグを使用して、黄色を使用する必要があるかどうかを判断できます。次にこの方法では、フラグをチェック、どの色を使用することを決定し、その後、色付きのテキストを追加し、フラグ逆:

  • 全体の内容を置換するには、あなたが割り当てることができる

    bool yellow = true; 
    public void AddText(string text) 
    { 
        richTextBox1.SelectionStart = richTextBox1.Text.Length; 
        richTextBox1.SelectionLength = 0; ; 
        richTextBox1.SelectionColor = yellow ? Color.Yellow : Color.Red; 
        richTextBox1.SelectedText = text; 
        yellow = !yellow; 
    } 
    

    注意を値はTextプロパティになります。

  • テキストを追加するには、AppendTextメソッドを使用できます。
  • 内容全体に単一の色を使用するには、ForeColorプロパティに色を割り当てることができます。あなたは、指定したインデックスに0SelectionLengthSelectionStartを設定SelectionColor指定した色にして、SelectionTextプロパティに指定されたテキストを割り当てることができますRichTextBoxのいずれかの指標で色付きのテキストを挿入する
+0

'SelectionLength'は' text.Length'でなければなりません –

+0

@メソッドをコピーしてクラスに貼り付けると、正しく動作することがわかります:) –

+0

@ un-lucky richtextboxは現在の選択を無視します。現在の選択の色の変更を防止します。 –

関連する問題