我想创建一个文本框/标签来显示串行连接的输入/输出。这个程序将运行很长一段时间,因为我不想大量使用内存,所以当它达到最大值时,我会定期减少文本框内容的长度。不幸的是,我发现使用子字符串方法会导致闪烁,因为程序会重绘文本框的整个内容。基本上,我正在寻找的是文本框的appendtext方法的反面。如果你帮我解决这个问题,我将永远是你最好的朋友。
答案 0 :(得分:3)
我建议使用另一个控件而不是TextBox
。重绘的方式很糟糕。
在控件上启用双缓冲时可能会有一些运气(例如:How to prevent a Windows Forms TextBox from flickering on resize?),但我通常会使用ListView
。
答案 1 :(得分:1)
您应该可以将此代码添加到表单中,并使大部分闪烁(如果不是全部)消失:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
基本上这会打开一个标志,告诉Windows在重新绘制控件时对控件进行双重缓冲。
答案 2 :(得分:1)
使用hive> CREATE EXTERNAL TABLE BG (
> `Id` string,
> `Someint` int
> )
> ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
> LOCATION '/tmp/example'
> TBLPROPERTIES ("skip.header.line.count"="1");
OK
Time taken: 0.598 seconds
hive> select * from BG;
OK
506253-A 10
506254-C 19
506233 8
Time taken: 0.714 seconds, Fetched: 3 row(s)
修改Array.ConstrainedCopy
属性。例如计时器每秒更新文本框的时间,最多10行......
Textbox.Lines
答案 3 :(得分:-2)
我在互联网上找到了一个简单的解决方案(c#中的代码),可能太简单了,但请尝试:
void UpdateTextBox(string message)
{
myTextBox.SelectionStart = myTextBox.Text.Length;
myTextBox.SelectedText = message;
}