這會爲你工作:
public void HighlightLastLine(RichTextBox TextControl, Color HighlightColor)
{
TextControl.Text = TextControl.Text.Trim();
TextControl.SelectionStart = 0;
TextControl.SelectionLength = 0;
TextControl.SelectionColor = Color.Black;
string LastLineText = TextControl.Lines[richTextBox1.Lines.Count() - 1];
int LastLineStartIndex = richTextBox1.Text.LastIndexOf(LastLineText);
TextControl.SelectionStart = LastLineStartIndex;
TextControl.SelectionLength = TextControl.Text.Length - 1;
TextControl.SelectionColor = HighlightColor;
}
用法:
HighlightLastLine(richTextBox1, Color.Indigo);
基本上,我們這裏做的是做一些清理,然後再使用選擇控制的最後一行行字符串數組。然後我們得到該字符串的最後一個索引(因爲我們有重複),並且我們只是告訴控件從行首開始着色,直到結束。最後,我們應用參數中傳遞的顏色。
編輯:
添加的過載,將允許自定義文本的亮點,也不會清除文本如果ClearColors參數傳遞一個錯誤的標誌。
public void HighlightLastLine(RichTextBox TextControl, string TextToHighlight, Color HighlightColor, bool ClearColors = true)
{
TextControl.Text = TextControl.Text.Trim();
if (ClearColors)
{
TextControl.SelectionStart = 0;
TextControl.SelectionLength = 0;
TextControl.SelectionColor = Color.Black;
}
int LastLineStartIndex = richTextBox1.Text.LastIndexOf(TextToHighlight);
if (LastLineStartIndex >= 0)
{
TextControl.SelectionStart = LastLineStartIndex;
TextControl.SelectionLength = TextControl.Text.Length - 1;
TextControl.SelectionColor = HighlightColor;
TextControl.SelectionStart = 0;
TextControl.SelectionLength = 0;
}
}
用法:
HighlightLastLine(richTextBox1, "Michael Jackson", Color.Indigo, false);
這將試圖找到邁克爾·傑克遜的最後一個索引和着色它。請注意,在最後一個參數中會提供一個錯誤,以允許保留現有的顏色。
所以你會不會劈在新的生產線,找出有多少數組中,拿到最後一個那麼就根據你的膚色邏輯是什麼? – 2012-08-12 02:44:30