簡體   English   中英

在RichTextBox中添加更多文本並突出顯示時,它將清除所有以前的突出顯示

[英]When adding more text into a RichTextBox and highlighting, it clears all previous highlights

我正在制作一個調試/日志表單,該表單將在特定時間保存其他表單中完成的所有工作:例如按下按鈕,在文本框中輸入一些信息等。

在每一行中,我突出顯示與當天相對應的實際時間,例如,今天是10/08/2019,因此:

例子1

10/08/2019與實際日期相對應,因此已突出顯示。 問題是當我做其他事情,例如按L按鈕時,它顯示如下:

例子2

下面,我將其解釋為以下代碼:CMD = RichTextBox

private void ChequearDatos()
{
    string line = CMD.Text;
    int x = xk, xx = 0, lent = 0;
    lent = line.Length;

    do
    {
        else if (line[x] == '\n')
        {
            xk = x;                   
            x++;
        }

        else if (line[x] == '■')
        {
            xx = x + 1;
            do
            {
                xx = xx + 1;
            }
            while (line[xx] != '=');
            string pedazo = line.Substring(x + 2, (xx - x) - 12);
            if (pedazo == Convert.ToString(DateTime.Today.Day + "/" + DateTime.Today.Month + "/" + DateTime.Today.Year))
            {
                CMD.SelectionStart = x;
                CMD.SelectionLength = xx - x + 1;
                CMD.SelectionColor = System.Drawing.Color.OrangeRed;
            }
            else
            {
                CMD.SelectionStart = x;
                CMD.SelectionLength = xx - x + 1;
                CMD.SelectionColor = System.Drawing.Color.DarkKhaki;
            }
            CMD.SelectionStart = CMD.TextLength;

            CMD.ScrollToCaret();
            if (xx + 1 > lent) { break; }
            else { x = xx + 1; } 
        }
        else { x = x + 1; }
    }
    while (x <= lent - 1);
}

程序將搜索■和=,如果日期相同,則將其內部用DarkKhaki顏色突出顯示;如果不是同一日期,則將使用OrangeRed顏色突出顯示。

在第一次運行中,它運行良好,但是當我添加更多文本並再次調用該函數時,除最后一條消息外,所有內容均以白色突出顯示。

編輯:我嘗試過不保存xk int變量,但是當我調用此函數時,程序需要再次處理所有文本,並開始閃爍直到選中所有文本。

我像@TnTinMin所說的那樣固定了它,在我調用此函數之前,另一個函數在RTB中寫入如下:

void PrintRTB(string a)
{
  RTB.text += "■ " +  a + "\n";
  ChequearDatos();
}

現在,我使用命令[.appendtext]可以工作了!

void PrintRTB(string a)
{
  RTB.AppendText("■ " + a + "\n");
  ChequearDatos();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM