解决C#中ListView数据刷新时界面闪烁的问题
2017-03-21 09:44
756 查看
通常往ListView不断写入数据时,会发现ListView上的数据存在抖动闪烁的问题。对于追求完美的强迫症晚期患者而言,这一点是无法容忍的。同时也带来不良的用户体验。
下面通过双缓冲的方法解决该问题。
1.
新建一个类
2.
实例化这个类,并在Form中具体设置
3.往该ListView控件内写入数据,看最后的实现结果
下面通过双缓冲的方法解决该问题。
1.
新建一个类
public class DoubleBufferListView : ListView { public DoubleBufferListView() { SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); UpdateStyles(); } }
2.
实例化这个类,并在Form中具体设置
DoubleBufferListView listView1 = new DoubleBufferListView(); private void Spurious_Test_Pannel_Load(object sender, EventArgs e) { foreach (TabPage p in this.tabControl1.TabPages) { p.Parent = null; } this.tabPage1.Controls.Add(listView1); listView1.GridLines = true; // 打开Grid listView1.View = View.Details; // detail视图 listView1.FullRowSelect = true; // 行全选 listView1.Dock = DockStyle.Fill; // 填充父容器 listView1.BackColor = Color.Azure; // background color }
3.往该ListView控件内写入数据,看最后的实现结果
public void myFun() { listView1.Columns.Add("Num"); listView1.Columns.Add("Result"); for (int i = 0; i < 20; i++) { ListViewItem p = listView1.Items.Add(i.ToString()); p.SubItems.Add("This is test" + i.ToString()); } Thread.Sleep(300); }4.新建一个Button控件调用上面的自定义方法
private void button1_Click(object sender, EventArgs e) { Thread thread1 = new Thread(new ThreadStart(delegate { myFun(); })); thread1.IsBackground = true; thread1.Start(); }
相关文章推荐
- 双缓冲解决高频率刷新界面闪烁问题(C#)
- PullToRefreshScrollView下拉刷新、上啦加载更多、里面并解决与ListView数据加载问题(需要PullToReFerensh库)
- C#.net picturebox动画效果,刷新图像的闪烁问题解决方法
- Android Listview制定属于自己的适配器,完美解决数据刷新等问题!
- C# 中DataGridView和ListView闪烁问题的解决方法
- 解决RedrawWindow()刷新界面出现闪烁的问题, VC对话框界面使用InvalidateRect刷新局部
- c#解决窗口背景贴图刷新,放大后图像闪烁问题
- C#使用ListView更新数据出现闪烁解决办法
- C# 中DataGridView和ListView闪烁问题的解决方法
- 测试代码,解决java gui swing多线程界面假死、僵死问题,实现界面动态刷新,动态同步更新数据
- C#使用ListView更新数据出现闪烁解决办法
- C#界面闪烁问题解决方案
- 解决listview更新数据时,屏幕闪烁的问题
- C# 线程中更新ListView某单元格导致闪烁问题的解决
- [代码问题解决录A1]c#Listview控件动态添加数据并阻止重复添加
- PullToRefreshScrollView下拉刷新、上啦加载更多、里面并解决与ListView数据加载问题(需要PullToReFerensh库)
- vb.net中利用双缓冲绘图技术解决listview加载数据闪烁的问题
- C#:使用ListView动态添加数据一直闪烁的解决办法
- 解决Windows 程序界面闪烁问题的一些经验 (转载)
- 在Asp.net 2.0 中禁用页面缓存解决页面刷新(重新加载数据)的问题!