如何频繁更改 Textbox 内文本 我需要用一个TextBox来显示频繁变化的多行文本,(比如滚动显示网络上不断传来的文本信息),我用mytextbox.Text = "<the-new-text>";结果发现,显示倒是没问题,只是该程序几乎不响应其他事件了。如何才能改善这一性能问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 并且,当网络上接收到的文本累计到一定时候,比如10G, 必然超出 TextBox 的显示能力,如何才能让 TextBox 只现实最近收到的1000 行而显示速度仍然可以接受呢?我用 VC++ 6.0 写过这种功能的程序,就是把接收到的数据砍掉头部,留1000行,效果不错,在 C#.net 里边却效果差很多。 试试用异步的方法显示private delegate bool ShowTextDelegate();dlg = new ShowTextDelegate(this.ShowTextRun);result = dlg.BeginInvoke(new AsyncCallback(this.ShowTextEnd), this);private bool ShowTextRun(){ mytextbox.Text = "<the-new-text>";}private void ShowTextEnd(IAsyncResult result){} 用个Queue对象来管理最近的1000行private Queue q = new Queue();public void AddText(string s){ q.Enqueue(s); if(q.Count > 1000) q.Dequeue();} 在ShowTextRun中,需要处理已经在处理显示的情况基本就是用一个标志来表示当前已经在显示文本了显示文本时,如果在显示文本,那么当前的现实结束在ShowTextEnd的过程中要再次确认一下当前文本是否最新(可以用一个计数器来记录当前显示的文本行数)如果是旧的,那就再次调用显示文本这个自己控制吧,不是很复杂的 保留一部分内容在textbox中显示,其他的保存到本地文件,然后根据需要动态load出来 to James Fay: 其实我已经是这么做的,但因为还是要频繁更改,效果不好。挑刺的建议不错。我打算创建一个user control,把Textbox改掉。因为改文本内容是,旁边的滚动条上下乱跳。 10本经典C#和.Net教程、学习开发资料和340个经典实例 怎么样根据不同的星期,在前台显示不同的用户? treeview如何返回选中节点的ID号 问个小问题 关于属性的赋值与获取 想写一个blog,各位给我个思路哈 请教! 在智能设备程序开发中,listBox,没有水平滚动条这样的属性,而我显示的信息不至一屏,请问怎么处理.? 请教值类型对象的内存分配时机? treeview没有显示,但是未提示错误。 登录窗体密码显示 救命!! 怎么用csc编译*.cs文件阿? c#中,开发PDA条形码扫描程序,请问怎么读取 .TXT文件里的信息??
dlg = new ShowTextDelegate(this.ShowTextRun);
result = dlg.BeginInvoke(new AsyncCallback(this.ShowTextEnd), this);
private bool ShowTextRun()
{
mytextbox.Text = "<the-new-text>";
}
private void ShowTextEnd(IAsyncResult result)
{
}
public void AddText(string s)
{
q.Enqueue(s);
if(q.Count > 1000) q.Dequeue();
}
(可以用一个计数器来记录当前显示的文本行数)如果是旧的,那就再次调用显示文本这个自己控制吧,不是很复杂的
我打算创建一个user control,把Textbox改掉。因为改文本内容是,旁边的滚动条上下乱跳。