我正在制作一个调试/日志表单,该表单将在特定时间保存其他表单中完成的所有操作:例如按下按钮,在文本框中输入一些信息等。
在每一行中,我突出显示与当天相对应的实际时间,例如,今天是10/08/2019,因此:
10/08/2019对应于实际日期,因此突出显示。问题是当我做其他事情,例如按L按钮时,它显示如下:
下面,我将其解释为以下代码: 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变量,但是当我调用此函数时,程序需要再次处理所有文本,并开始闪烁直到选中所有文本。
答案 0 :(得分:0)
我修复了它的问题,就像@TnTinMin所说的那样,在我调用此函数之前,另一个函数在RTB中写入如下:
void PrintRTB(string a)
{
RTB.text += "■ " + a + "\n";
ChequearDatos();
}
现在我使用命令[.appendtext]可以正常工作!
void PrintRTB(string a)
{
RTB.AppendText("■ " + a + "\n");
ChequearDatos();
}