为了账号安全,请及时绑定邮箱和手机立即绑定

当向 RichTextBox 添加更多文本并突出显示时,它会清除所有以前的突出显示

当向 RichTextBox 添加更多文本并突出显示时,它会清除所有以前的突出显示

C#
翻翻过去那场雪 2023-08-20 15:19:33
我正在制作一个调试/日志表单,用于保存特定时间在其他表单中完成的所有操作:例如按下按钮、在文本框中输入一些信息等。下面我放置了解释此内容的代码:CMD = RichTextBoxprivate 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);}程序搜索■和=,其中如果日期相同则以深卡其色突出显示,如果不同则以橙红色突出显示。在第一次运行中,它运行良好,但是当我添加更多文本并再次调用该函数时,它会以白色突出显示除最后一条消息之外的所有内容。编辑:我尝试不保存xk int 变量,但是当我调用此函数时,程序需要再次处理所有文本并开始闪烁,直到检查所有文本。
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

在调用此函数之前,另一个函数会在 RTB 中写入如下内容:


void PrintRTB(string a)

{

  RTB.text += "■ " +  a + "\n";

  ChequearDatos();

}

现在我使用命令 [.appendtext] 并且可以工作!


void PrintRTB(string a)

{

  RTB.AppendText("■ " + a + "\n");

  ChequearDatos();

}


查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信