青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 224  文章 - 41  trackbacks - 0
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經(jīng)典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

原文地址:http://hi.baidu.com/susdisk/blog/item/ee133dcbf19417f553664f46.html
原文地址:http://blog.csdn.net/hfzsjz/archive/2008/12/15/3521631.aspx

這個問題網(wǎng)上有成型的解決方法,引起閃爍的問題有兩個:

一,是加入刪除大量數(shù)據(jù)引起。

二,是沒有開啟LISTVIEW的雙緩存功能。

我需要用一個TIMER實時更新LISTVIEW,遇到的是第二個問題,重載LISTVIEW,寫一個新組件,然后在FORM.DESIGNER文件里將LISTVIEW替換為這個類即可:

 class DoubleBufferListView: ListView
    {
        public DoubleBufferListView()
        {
            SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
            UpdateStyles(); 
        }
    } 


另外:加入刪除大量數(shù)據(jù)

防止閃爍的ListView顯示方案

相信做Win Form程序的朋友們一定遇到過在ListView中插入數(shù)據(jù)時,界面上一直在閃爍,而且速度很慢的情況吧。究其原因,還是在Windows消息機制沒有使用好的原因。

本文對于ListView閃爍的原因,進行探究,并對于不同種的情況給出解決方案。

閃爍的原因

ListView閃爍的原因有以下幾點或幾種情況:
1:在數(shù)據(jù)多次插入間,存在時間間隔。
2:使用普通的Items.Add方法插入的數(shù)據(jù)量過大。
3:界面上有多個ListView在進行數(shù)據(jù)插入。

最根本的原因是因為,每次調(diào)用ListView實例進行插入的時候,都需要向系統(tǒng)發(fā)送一個窗口消息(相信做C++的朋友應(yīng)該很清楚),然后窗口接到消息就會刷新對應(yīng)控件的界面。所以,如果間隔時間長,或插入次數(shù)多,一定會閃爍的。
  防止閃爍的ListView顯示方案 收藏
The resolution of ListView Blink

防止閃爍的ListView顯示方案

相信做Win Form程序的朋友們一定遇到過在ListView中插入數(shù)據(jù)時,界面上一直在閃爍,而且速度很慢的情況吧。究其原因,還是在Windows消息機制沒有使用好的原因。

本文對于ListView閃爍的原因,進行探究,并對于不同種的情況給出解決方案。

閃爍的原因

ListView閃爍的原因有以下幾點或幾種情況:
1:在數(shù)據(jù)多次插入間,存在時間間隔。
2:使用普通的Items.Add方法插入的數(shù)據(jù)量過大。
3:界面上有多個ListView在進行數(shù)據(jù)插入。

最根本的原因是因為,每次調(diào)用ListView實例進行插入的時候,都需要向系統(tǒng)發(fā)送一個窗口消息(相信做C++的朋友應(yīng)該很清楚),然后窗口接到消息就會刷新對應(yīng)控件的界面。所以,如果間隔時間長,或插入次數(shù)多,一定會閃爍的。

 

解決方案

源碼中實例的解決方案:

 

ListViewItem lvi;

            ListViewItem[] lvitems1 
= new ListViewItem[10000];

            
for (int i = 0; i < 10000; i++)
            
{
                lvi 
= new ListViewItem(new string[] { i.ToString(), "22" });
                lvitems1[i] 
= lvi;
            }


            listViewTest.Items.AddRange(lvitems1);更通用的解決方法:

// create a temp dataTable to store data
            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add(
"ID"typeof(String));
            dt.Columns.Add(
"Name"typeof(String));
            dt.Columns.Add(
"Class"typeof(String));
            dt.Columns.Add(
"Lesson"typeof(String));

         
foreach(item in dataSource)
         
{
                    dr 
= dt.NewRow();
                    dr[
0= item.ID; // ID 
                    dr[1= item.Name;  // Name
                    dr[2= item.Class;  // Class
                    dr[3= item.Lesson;  // Lesson

                    dt.Rows.Add(dr);

         }


            
// loop the temp table , and insert to ListView

            
int i = 0;
            
while(iint iSize = (dt.Rows.Count-i)>1000?1000:(dt.Rows.Count-i);
                            
                ListViewItem lvi;

                ListViewItem[] lvitems 
= new ListViewItem[iSize];

                
for (int j = 0; j < iSize; j++)
                
{
                    lvi 
= new ListViewItem(new string[] { dt.Rows[i+j][0].ToString(), dt.Rows[i+j][1].ToString(), dt.Rows[i+j][2].ToString(), dt.Rows[i+j][3].ToString() });
                    lvitems[i] 
= lvi;
                }


                listViewTest.Items.AddRange(lvitems);

                i 
= i + iSize;
            }


主要思路是,建一個臨時的Table,然后,把數(shù)據(jù)插入到這個臨時表中;在處理結(jié)束之后,使用Items.AddRange方法把數(shù)據(jù)分塊插入到ListView。

 

posted on 2010-09-01 18:15 漂漂 閱讀(3620) 評論(0)  編輯 收藏 引用 所屬分類: c#開發(fā)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久久久久久app| 亚洲欧美日韩一区| 欧美freesex8一10精品| 欧美亚洲综合另类| 欧美日韩一区二区高清| 欧美成人一区在线| 一区二区三区在线观看视频| 一区二区av在线| 亚洲精品欧美极品| 麻豆9191精品国产| 久久亚洲二区| 国产有码在线一区二区视频| 亚洲午夜激情网站| 亚洲视频一区二区免费在线观看| 欧美成人午夜激情在线| 欧美大片va欧美在线播放| 激情欧美一区二区三区| 欧美专区日韩专区| 久久久久91| 国产一区二区视频在线观看 | 久久午夜精品| 国产亚洲欧美中文| 久久av在线看| 久久资源在线| 亚洲高清在线视频| 你懂的成人av| 亚洲国产片色| 日韩一二三区视频| 欧美日韩国产影院| 宅男精品视频| 欧美在线免费看| 国内成人自拍视频| 久久亚洲综合色| 亚洲经典三级| 亚洲一区欧美一区| 国产麻豆精品久久一二三| 先锋影音久久久| 麻豆成人小视频| 亚洲精品在线三区| 欧美视频一区在线观看| 亚洲男人av电影| 久久人人爽人人爽| 亚洲伦理在线| 国产乱肥老妇国产一区二| 欧美在线观看网址综合| 欧美福利小视频| 中国亚洲黄色| 国内外成人免费激情在线视频| 久久久久久久久久久久久女国产乱| 欧美大片国产精品| 亚洲特级毛片| 国一区二区在线观看| 欧美福利视频| 亚洲欧美一区二区三区极速播放| 久久久久国内| 一本大道久久精品懂色aⅴ| 国产精品乱子乱xxxx| 久久久久综合| 在线视频精品一| 欧美jjzz| 欧美一区二区三区视频在线观看| 在线日韩中文字幕| 国产精品久久久久久久久久久久久久 | 中文欧美字幕免费| 国产综合视频| 欧美日韩免费一区二区三区| 欧美主播一区二区三区美女 久久精品人| 欧美激情影院| 久久精品国产欧美亚洲人人爽| 亚洲美女区一区| 极品尤物久久久av免费看| 国产精品va在线播放| 久久午夜精品| 欧美一区成人| 亚洲在线播放| 亚洲精品一区在线观看香蕉| 久久人体大胆视频| 欧美亚洲在线视频| 一本色道久久综合精品竹菊 | 久久国产精品高清| 亚洲午夜精品久久| 亚洲欧洲精品一区二区三区不卡 | 欧美sm视频| 久久精品国产欧美亚洲人人爽| 一区二区三区黄色| 亚洲精品一区二区三区蜜桃久| 国内精品伊人久久久久av影院 | 亚洲五月婷婷| 亚洲免费成人av| 亚洲黄色在线看| 嫩草国产精品入口| 久久亚洲一区二区三区四区| 羞羞答答国产精品www一本| 亚洲无线观看| 一本色道久久综合亚洲精品不卡| 亚洲二区精品| 在线观看日韩一区| 1000部国产精品成人观看| 国内精品视频久久| 激情成人综合网| 黄网站免费久久| 黄色在线一区| 亚洲大片精品永久免费| 在线日韩av片| 亚洲国产精品一区| 亚洲三级电影全部在线观看高清| 亚洲承认在线| 亚洲片区在线| 99成人精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国产精品日本精品| 国产精品综合色区在线观看| 国产欧美亚洲日本| 国产亚洲永久域名| 在线免费观看成人网| 亚洲国产精品欧美一二99| 91久久精品日日躁夜夜躁欧美| 亚洲人成啪啪网站| 99riav久久精品riav| 亚洲在线观看视频| 欧美在线首页| 蜜桃av一区二区| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产成人一区| 日韩小视频在线观看专区| 一本色道88久久加勒比精品| 亚洲一区视频在线| 久久久久久久999精品视频| 欧美不卡视频一区| 国产精品久久二区| 黄色精品一区| 中国成人黄色视屏| 欧美在线视频a| 欧美刺激性大交免费视频| 一区二区精品在线| 久久精品99国产精品酒店日本| 欧美 日韩 国产在线| 欧美午夜精品一区| 黄色成人在线观看| 亚洲视频日本| 免费精品99久久国产综合精品| 亚洲日本中文字幕| 欧美在线视频a| 欧美精品一区二区在线观看| 国产精品男人爽免费视频1| 国内精品视频一区| 中文精品视频一区二区在线观看| 久久久99国产精品免费| 91久久一区二区| 校园春色国产精品| 欧美日韩在线播放一区| 国产综合在线视频| 亚洲一区二区三区免费视频| 麻豆9191精品国产| 亚洲一区欧美激情| 欧美激情一区二区三区成人| 国产精品女人毛片| 99亚洲一区二区| 欧美刺激性大交免费视频| 亚洲自拍16p| 欧美日韩国产页| 亚洲黄色视屏| 久久综合一区| 亚洲综合激情| 国产精品国产三级国产普通话99| 亚洲日本一区二区| 久久人人超碰| 午夜一级在线看亚洲| 欧美偷拍一区二区| 亚洲精品一区二区三区在线观看| 久久嫩草精品久久久精品| 亚洲一区二区免费看| 欧美视频官网| 中文网丁香综合网| 亚洲精选91| 欧美精品播放| 亚洲精品色婷婷福利天堂| 欧美成人免费va影院高清| 欧美影片第一页| 国产欧美韩国高清| 欧美一区日本一区韩国一区| 亚洲小视频在线观看| 欧美日韩亚洲综合在线| 99这里有精品| 亚洲美女视频在线观看| 欧美精品日韩| 在线视频你懂得一区 | 欧美成人一区二区三区在线观看| 欧美一区二区视频在线| 国产婷婷一区二区| 久久久久88色偷偷免费| 久久成人精品电影| 韩国av一区二区三区四区| 久久精品五月婷婷| 欧美在线观看日本一区| 黄色亚洲在线| 欧美高清一区| 欧美日韩精品久久久| 亚洲综合国产精品|