2016-07-07 84 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

所以你想要從文本框添加文本到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屬性。
  • 要在RichTextBox任何索引插入彩色文本可以設置SelectionStart指定索引,SelectionLength0SelectionColor指定顏色,然後給定文本分配給SelectionText財產。
+0

我認爲,'SelectionLength'應該是'text.Length' –

+0

@דניאלרשת只需複製該方法並將其粘貼到您的課堂中,您將看到它正常工作:) –

+0

@ un-lucky它使richtextbox忽略當前選擇,防止改變當前選擇的顏色。 –

相關問題