我創建的RichTextBox,我添加以下代碼:RichTextBox的文本顏色
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
//()
int selectionStart = richTextBox1.SelectionStart;
string helpText = richTextBox1.Text;
int closerPos;
for (int i = 0; i < helpText.Length; i++)
{
if (helpText[i] == '(')
{
selectionStart = richTextBox1.SelectionStart;
closerPos = helpText.Substring(i).IndexOf(')') + i;
helpText = helpText.Substring(i + 1, closerPos - i - 1);
richTextBox1.Text = richTextBox1.Text.Remove(i + 1, closerPos - i - 1);
richTextBox1.Select(i + 1, 0);
richTextBox1.SelectionColor = Color.Red;
richTextBox1.SelectedText = helpText;
richTextBox1.SelectionColor = Color.Black;
helpText = richTextBox1.Text;
richTextBox1.SelectionStart = selectionStart;
}
}
}
此代碼應上色()之間的文本。 例如:
「嗨(需彩色)文本(sdadsasd)」
之間的()需要以紅色着色的文本。但只有最後一段文字纔會着色。我該如何解決它?
爲什麼我需要拆分它? – user2203448 2013-03-27 22:50:42
你必須知道richtextbox文本中有多少()個文本。其實你的代碼首先找到()然後完成。如果你分割它,你可以爲每個()區域執行你的邏輯。 – Xelom 2013-03-27 23:12:02
好吧,但它仍然沒有解釋爲什麼這段代碼無法正常工作。 – user2203448 2013-03-27 23:18:06