C#使用ListView更新数据出现闪烁解决办法
来源:互联网 发布:Execl数据分析证书 编辑:程序博客网 时间:2024/05/23 01:21
C#使用ListView更新数据出现闪烁解决办法
在使用vs自动控件ListView控件时候,更新里面的部分代码时候出现闪烁的情况
如图:
解决以后:
解决办法使用双缓冲:添加新类继承ListView 对其重写
1 public class DoubleBufferListView : ListView 2 { 3 public DoubleBufferListView() 4 { 5 SetStyle(ControlStyles.DoubleBuffer | 6 ControlStyles.OptimizedDoubleBuffer | 7 ControlStyles.AllPaintingInWmPaint, true); 8 UpdateStyles(); 9 }10 }
新建一个DemoTest测试
1.添加一个DoubleBufferListView的实例
DoubleBufferListView doubleBufferListView1= new DoubleBufferListView(); // // doubleBufferListView1 // this.doubleBufferListView1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.doubleBufferListView1.FullRowSelect = true; this.doubleBufferListView1.HideSelection = false; this.doubleBufferListView1.Location = new System.Drawing.Point(50, 37); this.doubleBufferListView1.Name = "doubleBufferListView1"; this.doubleBufferListView1.Size = new System.Drawing.Size(400, 191); this.doubleBufferListView1.TabIndex = 2; this.doubleBufferListView1.UseCompatibleStateImageBehavior = false; this.doubleBufferListView1.View = System.Windows.Forms.View.Details;
2.将其添加到form窗体里面
this.Controls.Add(this.doubleBufferListView1);
3.给添加列
doubleBufferListView1.Clear(); doubleBufferListView1.Columns.Add("Action", 80, System.Windows.Forms.HorizontalAlignment.Left); doubleBufferListView1.Columns.Add("value", 80, System.Windows.Forms.HorizontalAlignment.Right); doubleBufferListView1.Columns.Add("Action", 80, System.Windows.Forms.HorizontalAlignment.Left); doubleBufferListView1.Columns.Add("value", 80, System.Windows.Forms.HorizontalAlignment.Left);
4.随便添加点内容
string[] listViewData = new string[4]; listViewData[0] = "Action"; listViewData[1] = "1"; listViewData[2] = "Action"; listViewData[3] = "1"; ListViewItem lvItem = new ListViewItem(listViewData, 0); doubleBufferView1.Items.Add(lvItem);
5.点击按钮开始运行
private void button1_Click(object sender, EventArgs e) { Thread th = new Thread(PlayGame); if (state == false) { state = true; button1.Text = "停止"; th.IsBackground = true; th.Name = "新线程"; th.Start(); } else { state = false; button1.Text = "开始"; } } private void PlayGame() { Random r = new Random(); while (state) { string temp = r.Next(0, 10).ToString(); label1.Text = temp; this.doubleBufferListView1.Items[0].SubItems[1].Text = temp; } }
6.运行对比图:
左侧是解决闪屏后,右侧是自带的ListView效果
1 0
- C#使用ListView更新数据出现闪烁解决办法
- 使用ListView更新数据一直闪烁的解决办法
- 使用ListView更新数据一直闪烁的解决办法
- C#中使用ListView动态添加数据不闪烁
- C#中使用ListView动态添加数据不闪烁
- C#中使用ListView动态添加数据不闪烁
- GridView、ListView数据更新图片闪烁问题
- C#使用ListView动态添加数据屏幕闪烁的解决方法之一
- 解决Listview控件中的数据实时更新产生闪烁!
- 解决listview更新数据时,屏幕闪烁的问题
- dataGridView 闪烁 和 listview 闪烁 的解决办法
- dataGridView 闪烁 和 listview 闪烁 的解决办法。
- dataGridView 闪烁 和 listview 闪烁 的解决办法
- dataGridView 闪烁 和 listview 闪烁 的解决办法
- C#绘图闪烁解决办法
- 永不闪烁的C# ListView!
- C#不闪烁的ListView
- 两个ListView 嵌套数据出现错位,混淆的,图片闪烁问题
- mybatis主键返回
- oracle的sys 用户密码是任意的
- IPERF Test for measuring the throughput/speed of a WLAN client.
- redis object对象系统的源码分析
- Android消息机制Message消息池
- C#使用ListView更新数据出现闪烁解决办法
- perl 批量生成分区表
- MySQL大数据量快速分页实现
- js 加法运算问题
- cvsba编译配置
- android移动支付——微信支付
- hbase RowFilter如何根据rowkey查询以及实例实现代码
- BZOJ2079: [Poi2010]Guilds
- python+Tkinter+多线程 简单例子1