2016-07-07 102 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忽略当前选择,防止改变当前选择的颜色。 –

相关问题