日期:2014-05-18  浏览次数:21105 次

ListView的闪烁问题,及toolStrip下面的线
1.我使用了listView控件,分了4个组,第个组中最多显示15行,当一个组中超过15行时,就把这个组当中的item[0]给删除掉,其他都很好,就是listView实在是闪烁的有点儿厉害,我大概1秒钟一个数据的添加进行,结果挺漂亮的界面,就闪的不爽了.在MSDN里说开启双buffer,不过listview里没有,只开启了form的,还是闪...
C# code
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);

网上找了好一会,也没看到什么好的解决方案,大家给点儿意见?

2.VS 2005里面的toolTrip,我把背景颜色改掉后,下面还有一条蓝色的线,要怎么去掉?

------解决方案--------------------
在更新之前用listView1.BeginUpdate();
更新之后用listView1.EndUpdate();可以稍微减轻一下闪烁
要不闪的话使用DataGridView效果会比较好


------解决方案--------------------
,我是很多个线程同时操作的,[b][/b]

你已经启用了双缓冲了。用户界面是非线程安全的,不支持多线程直接操作。用Invoke,BeginInvoke,或SynchronizationContext封送到界面线程。
------解决方案--------------------
第二个问题,有两种方法解决你的问题:
1、设置ToolStrip的RenderMode为System就没有下面的蓝色线了:
C# code
toolStrip1.RenderMode = ToolStripRenderMode.System;