【发布时间】:2012-08-16 21:35:24
【问题描述】:
我有一个显示应用程序日志的多行文本框。如果长度大于 1k 个字符,我会删除日志。问题是它在闪烁。如果数据不同,我使用计时器控件来更新带有条件的文本框。
有什么办法吗?还是有更好的方法来显示日志?谢谢!
// this is inside timer
if(txt_log.Text != MY_LOG_VAR){
txt_log.Text = MY_LOG_VAR;
}
// function to update log
public void Log(string data){
MY_LOG_VAR = data + "\r\n" + MY_LOG_VAR;
if(MY_LOG_VAR.Length > 1000){
substr...
}
}
Log函数每秒可以调用20次,定时器间隔设置为100秒;
它不会闪烁太多,但是如果将大量数据提交到它的日志中,我需要一个解决方案,让文本框甚至全屏而不闪烁。谢谢!
【问题讨论】:
-
请显示更新文本框的代码
-
你每次都设置text属性吗?
-
您是否在每次用户输入内容时都进行 > 1000 检查?如果是这样,您正在处理什么事件?我怀疑它是错误的......而且这种情况下的计时器听起来不正确。
-
更新了代码。它只是用来调试应用程序,它是一个网络应用程序,所以它显示了它在做什么。
-
您可以尝试在更新前调用
SuspendLayout并在更新后调用ResumeLayout看看是否会停止闪烁。但是我怀疑当您每100 毫秒更新一次文本框时它会有所帮助。跨度>