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

隨筆 - 224  文章 - 41  trackbacks - 0
<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

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

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

一,是加入刪除大量數據引起。

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

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

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


另外:加入刪除大量數據

防止閃爍的ListView顯示方案

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

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

閃爍的原因

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

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

防止閃爍的ListView顯示方案

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

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

閃爍的原因

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

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

 

解決方案

源碼中實例的解決方案:

 

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,然后,把數據插入到這個臨時表中;在處理結束之后,使用Items.AddRange方法把數據分塊插入到ListView。

 

posted on 2010-09-01 18:15 漂漂 閱讀(3608) 評論(0)  編輯 收藏 引用 所屬分類: c#開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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资源高清| 亚洲精品视频在线看| 在线视频亚洲一区| 久久动漫亚洲| 亚洲激情电影中文字幕| 麻豆av一区二区三区久久| 国产日韩欧美夫妻视频在线观看| 国产日本欧洲亚洲| 亚洲国产成人精品视频| 国产欧美三级| 欧美日韩不卡一区| 久久精品国产v日韩v亚洲 | 一本大道av伊人久久综合| 欧美在线免费一级片| 曰韩精品一区二区| 亚洲欧洲精品一区二区三区| 欧美激情中文不卡| 女同一区二区| 国产精品激情电影| 亚洲欧洲久久| 午夜欧美大片免费观看| 欧美寡妇偷汉性猛交| 亚洲欧美日韩国产| 欧美精品久久久久a| 国内精品美女av在线播放| 亚洲午夜精品久久| 欧美黄色日本| 欧美一级在线视频| 欧美视频在线观看免费网址| 亚洲国产一区二区三区青草影视 | 亚洲一区免费看| 欧美1区3d| 欧美一区二区在线免费观看| 欧美日韩在线观看视频| 亚洲福利在线视频| 久久久久久穴| 性欧美暴力猛交69hd| 国产精品久久久久久久久| 亚洲激情一区二区| 免费观看日韩av| 久久精品道一区二区三区| 国产精品网站在线观看| 一区二区三区 在线观看视频| 亚洲国产高清视频| 久久精品最新地址| 黑人极品videos精品欧美裸| 香蕉亚洲视频| 99在线热播精品免费| 亚洲尤物视频在线| 亚洲一区二区三区欧美| 亚洲激情综合| 欧美成人精品在线观看| 亚洲激情二区| 亚洲高清在线| 欧美激情视频免费观看| 亚洲欧洲在线播放| 亚洲国产精品成人综合| 欧美黑人国产人伦爽爽爽| 亚洲日韩欧美视频一区| 欧美国产精品中文字幕| 久久精品99| 一区二区在线观看视频| 欧美bbbxxxxx| 欧美高清视频一区二区| 中文有码久久| 久久青青草综合| 久久综合国产精品| 米奇777超碰欧美日韩亚洲| 亚洲精品国产品国语在线app | 欧美三日本三级三级在线播放| 一区二区福利| 亚洲免费在线视频| 激情成人av| 亚洲黑丝在线| 国产精品私人影院| 能在线观看的日韩av| 欧美日韩高清在线| 欧美一区二区三区喷汁尤物| 久久精品一区二区三区四区| 亚洲精品网址在线观看| 亚洲在线国产日韩欧美| 激情六月婷婷综合| 亚洲人成艺术| 久久久精品动漫| 伊人狠狠色j香婷婷综合| 欧美成人国产一区二区| 欧美日韩亚洲综合| 久久久精品五月天| 欧美日韩国产成人高清视频| 欧美主播一区二区三区| 每日更新成人在线视频| 亚洲男女自偷自拍图片另类| 久久一区精品| 欧美自拍偷拍午夜视频| 欧美激情亚洲自拍| 久久久久久夜精品精品免费| 欧美区一区二| 免费亚洲网站| 国产日韩久久| 99re视频这里只有精品| 影音先锋在线一区| 亚洲欧美成人网| 一区二区日韩免费看| 久久久蜜桃一区二区人| 亚洲免费在线观看| 欧美成人嫩草网站| 免费观看国产成人| 国产欧美日本一区二区三区| 亚洲精品美女91| 亚洲人成在线观看网站高清| 久久成人国产| 久久精品欧洲| 国产模特精品视频久久久久| 亚洲裸体视频| 亚洲精品一二区| 久久综合激情| 六十路精品视频| 国产一区视频网站| 欧美一级久久久久久久大片| 亚洲欧美日韩国产一区| 欧美系列精品| 亚洲小视频在线| 亚洲欧美卡通另类91av| 国产精品sss| 国产乱码精品一区二区三区不卡| 国产一区在线播放| 午夜日韩在线观看| 欧美福利精品| 午夜视频在线观看一区| 国产精品www| 亚洲精品欧美日韩| 亚洲精品欧美精品| 欧美激情导航| av不卡免费看| 亚洲欧美成人网| 国产欧美日韩在线观看| 欧美一二区视频| 久久午夜视频| 亚洲高清中文字幕| 欧美激情91| 99精品久久久| 久久精品国产一区二区三区| 国产精品入口麻豆原神| 亚洲欧美日韩国产成人精品影院 | 欧美日韩性视频在线| 一卡二卡3卡四卡高清精品视频| 在线亚洲伦理| 国产日产欧美精品| 久久亚洲精品视频| 亚洲欧洲日本专区| 亚洲欧美日韩天堂| 狠狠色综合网站久久久久久久| 欧美国产日韩a欧美在线观看| 玖玖精品视频| 在线亚洲一区| 欧美亚洲一区| 国产精品国产精品| 亚洲精品在线观| 亚洲女人天堂av| 欧美成人r级一区二区三区| 欧美国产视频一区二区| 欧美亚一区二区| 亚洲国产女人aaa毛片在线| 久久婷婷久久一区二区三区| 午夜视频在线观看一区二区三区 | 久久久久国产一区二区| 亚洲欧洲日本一区二区三区| 欧美午夜精品久久久久久孕妇| 午夜免费电影一区在线观看| 亚洲电影在线观看| 亚洲欧美一区二区激情| 亚洲国产精品久久人人爱蜜臀 | 国产中文一区二区| 欧美精品国产精品| 久久国产综合精品| 一区二区电影免费在线观看| 免播放器亚洲| 欧美一区二区观看视频| 亚洲美女色禁图| 欧美成人激情视频免费观看| 亚洲免费网址| 日韩一级在线观看| 尤妮丝一区二区裸体视频| 国产精品sss| 欧美日韩高清不卡| 欧美精品系列| 久久三级福利| 久久久久国产精品一区三寸| 亚洲视频二区| 一区二区久久久久久|