2016-07-07 1 views
1

양식에 RichTextBox에 텍스트를 추가하는 코드가 있습니다.richTextBox 특정 텍스트를 노란색으로 한 번, 빨간색으로 한 번 색칠 할 수 있습니까?

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 
    } 
} 

각 버튼은 SetText 새로운 텍스트를 얻고 richTextbox2에 추가를 클릭합니다.

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 속성에 색상을 할당 할 수 있습니다.
  • SelectionText 속성에 지정된 텍스트를 할당 한 후 지정된 색상에, 지정된 인덱스에 SelectionColorSelectionLength0SelectionStart을 설정할 수 있습니다 RichTextBox의 인덱스 컬러 텍스트를 삽입합니다.
+0

'SelectionLength'는'text.Length'이어야합니다. –

+0

@ 메서드를 복사하여 클래스에 붙여 넣으면 제대로 작동하는 것을 볼 수 있습니다 :) –

+0

@ un-lucky richtextbox는 현재 선택을 무시하도록합니다. 현재 선택의 색상 변경을 방지합니다. –