C#中使用ListView动态添加数据不闪烁

首先,自定义一个类ListViewNF,继承自 System.Windows.Forms.ListView

 1 class ListViewNF : System.Windows.Forms.ListView
 2     {
 3         public ListViewNF()
 4         {
 5             // 开启双缓冲
 6             this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
 7
 8             // Enable the OnNotifyMessage event so we get a chance to filter out
 9             // Windows messages before they get to the form‘s WndProc
10             this.SetStyle(ControlStyles.EnableNotifyMessage, true);
11         }
12
13         protected override void OnNotifyMessage(Message m)
14         {
15             //Filter out the WM_ERASEBKGND message
16             if (m.Msg != 0x14)
17             {
18                 base.OnNotifyMessage(m);
19             }
20
21         }
22
23
24     }

然后,修改我们的Form代码中定义ListView的位置,将原来的

System.Windows.Forms.ListView listView1;

修改为

ListViewNF listView1;

https://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.setstyle(VS.80).aspxhttp://www.cnblogs.com/zdkjob/archive/2012/01/17/2324618.html
时间: 2024-11-05 15:51:13

C#中使用ListView动态添加数据不闪烁的相关文章

C#:使用ListView动态添加数据一直闪烁的解决办法

首先,自定义一个类ListViewNF,继承自 System.Windows.Forms.ListView using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace 你的名称空间 { class ListViewNF : System.Windows.Forms.ListView { public ListV

Android之ListView动态添加数据(SQLiteOpenHelper类添加数据)

一.SQLiteOpenHelper类: 这次我们通过sqlite来动态添加数据,接下来我们创建一个openHelper.java,在前面sqlite博客中我们已经详细的讲了SQLite的创建及使用等操作,我们将在onCreate 创建方法中创建一张表和插入相关的值,通过db.execSQL()完成Sqlite的运行. ①openHelper2.java文件: public class openHelper2 extends SQLiteOpenHelper { private static f

用js 向h5 中的table 动态添加数据 (简单实现)

//向 表格传值 function setTextareaValue(items,pp){ console.log(" 进入函数 items=="+items); var tb = document.getElementById("addtable"); var td1 = tb.rows[1].cells[1]; var td2 = tb.rows[1].cells[2]; var td3 = tb.rows[1].cells[3]; var td4 = tb.r

JqueryMobile为Listview动态添加、删除查询功能

JqueryMobile的版本不同,引用JS的API也不同,因此为Listview动态添加.删除查询功能的代码也不同. 假设Listview控件内容如下: <ul data-role="listview" id="listview"  data-inset="true"> <li><a href="#">Acura</a></li> <li><a h

H5动态添加数据-老牛大讲堂

一.怎样实现动态添加数据呢? 首先要获得数据.一般通过ajax获得数据(参考我写的ajax跨域通信).之后动态添加数据. 下面我从简单到复杂介绍一下动态添加数据. 例子一:首先编写json数据,然后动态添加数据. <html> <head> <meta charset="utf-8" /> <script type="text/javascript" src="../H/js/jquery-3.0.0.min.js

js表单动态添加数据并提交

情景1:已经存在form对象了,动态为form增加对象并提交 function formAppendSubmit(){ var myform=$('#newArticleForm'); //得到form对象 var tmpInput=$("<input type='text' name='blogArticleForm.articleContent'/>"); tmpInput.attr("value", myUeditor.window.getCont

TableLayout 中不显示动态添加的tableRow

下面的代码不显示: TableRow lay = new TableRow(layIndex.getContext()); lay.setLayoutParams(lpRow); //layIndex.addView(lay, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); 下面的代码显示: TableRow lay = new

WPF中TreeView控件数据绑定和后台动态添加数据

数据绑定: TreeView数据绑定需要使用层次结构数据模板(HierarchicalDataTemplate)来显示分层数据.XAML代码如下: <TreeView Name="chapterTree" Grid.Column="0"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Path=ChildNodes}"&

Dev AspxGridView 前台动态添加数据

AspxGridView点击新增通过 window.open("OrderDetailInfo.aspx?functionName=CallBackChild", "child", "height=600, width=700, top=0, left=200, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no"); 打开的页面:OrderDet