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

隨筆 - 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>
            欧美一区二区| 国产精品入口夜色视频大尺度| 国产精品专区一| 欧美一级久久久| 亚洲欧美在线一区二区| 狠狠综合久久av一区二区老牛| 美女视频网站黄色亚洲| 久久久久中文| 夜夜嗨av色综合久久久综合网| 亚洲素人一区二区| 国产亚洲亚洲| 91久久精品一区二区三区| 欧美理论电影在线观看| 午夜亚洲性色视频| 欧美日韩国产成人高清视频| 国产三区精品| 亚洲国产1区| 国产精品入口| 亚洲第一区在线观看| 国产精品va在线播放| 久久视频一区| 欧美日韩亚洲一区| 久久久久久九九九九| 欧美精品一区三区| 久久久99久久精品女同性| 欧美精品久久久久a| 久久国产精品亚洲va麻豆| 欧美wwwwww| 久久久久久高潮国产精品视| 欧美日韩国产综合视频在线观看| 久久精品视频在线播放| 欧美日韩国产三区| 浪潮色综合久久天堂| 国产精品一区二区三区成人| 亚洲第一伊人| 国语自产精品视频在线看| 一区二区三区国产精品| 91久久精品国产91久久性色| 欧美一区二区三区视频在线观看| 一区二区三区高清视频在线观看| 久久精品国产免费| 新67194成人永久网站| 香蕉久久精品日日躁夜夜躁| 蜜臀av国产精品久久久久| 国产乱码精品一区二区三区五月婷| 亚洲国产精品久久久久久女王| 国产视频在线观看一区二区| 一区二区三区欧美| 日韩亚洲欧美综合| 免费成人黄色| 欧美看片网站| 一个色综合av| 久久精品一区二区三区不卡| 亚洲欧美一区二区激情| 欧美精品一区在线发布| 亚洲国产精品一区二区第一页| 激情六月综合| 久久视频一区| 欧美aa国产视频| 亚洲国产第一页| 快播亚洲色图| 欧美国产日韩a欧美在线观看| 国产一区二区三区直播精品电影| 午夜在线成人av| 久久精品一区二区三区四区| 国产日韩欧美不卡在线| 亚洲欧美日韩久久精品| 欧美在线国产精品| 国内成人精品2018免费看| 久久精品二区亚洲w码| 六月婷婷久久| 91久久精品国产91久久性色| 欧美激情在线狂野欧美精品| 欧美国产日韩精品免费观看| 亚洲片在线资源| 国产精品电影在线观看| 一本色道久久综合| 久久riav二区三区| 亚洲大胆人体在线| 欧美激情女人20p| 在线亚洲欧美视频| 久久精品日产第一区二区三区| 韩国精品久久久999| 久久这里只精品最新地址| 亚洲高清av| 午夜免费日韩视频| 极品日韩久久| 欧美日韩国产123区| 亚洲欧美另类国产| 欧美激情视频在线播放| 亚洲香蕉伊综合在人在线视看| 国产视频一区二区三区在线观看| 久久欧美中文字幕| 在线视频免费在线观看一区二区| 久久精品99久久香蕉国产色戒| 亚洲欧洲一区二区在线观看| 国产精品国产三级国产a| 久久精品论坛| 亚洲最新视频在线| 免费人成网站在线观看欧美高清| 一区二区三区www| 狠狠88综合久久久久综合网| 欧美精品偷拍| 久久久久久亚洲综合影院红桃| 99国产精品久久久久老师| 久久婷婷人人澡人人喊人人爽| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 日韩天堂av| 国产日韩一区欧美| 欧美伦理91| 久久久一区二区三区| 亚洲一区免费观看| 亚洲伦理精品| 欧美成人dvd在线视频| 久久福利毛片| 亚洲午夜精品久久| 欧美成人精品h版在线观看| 欧美在线观看一区二区| 在线视频亚洲| 最新中文字幕亚洲| 国产一区二区电影在线观看| 欧美国产免费| 蜜桃精品一区二区三区| 久久精品午夜| 欧美亚洲综合久久| 亚洲欧美日韩精品久久奇米色影视| 亚洲另类春色国产| 亚洲激情在线观看| 欧美丰满高潮xxxx喷水动漫| 久久久蜜臀国产一区二区| 欧美一级网站| 性欧美激情精品| 午夜视频在线观看一区| 亚洲自拍高清| 亚洲综合丁香| 亚洲欧美日本日韩| 午夜精品在线观看| 欧美在线高清| 久久精品国产亚洲a| 久久精品国产久精国产一老狼| 欧美一区网站| 欧美在线|欧美| 久久精品欧美日韩精品| 久久国内精品视频| 久久蜜桃资源一区二区老牛| 亚洲欧美综合精品久久成人| 亚洲欧美成aⅴ人在线观看| 亚洲小说欧美另类社区| 亚洲欧美日韩在线| 久久成人精品一区二区三区| 久久久国产精品亚洲一区| 久久九九精品99国产精品| 麻豆91精品| 亚洲第一福利社区| 亚洲精品免费一二三区| 亚洲免费精彩视频| 亚洲一区二区三区高清| 午夜精品久久久久影视| 久久精品系列| 欧美精品国产| 国产精品影片在线观看| 海角社区69精品视频| 最新热久久免费视频| 亚洲调教视频在线观看| 久久国产黑丝| 亚洲电影欧美电影有声小说| 99视频精品在线| 欧美中文在线视频| 欧美波霸影院| 国产精品三上| 亚洲国产导航| 香蕉成人伊视频在线观看| 农夫在线精品视频免费观看| 99视频精品全国免费| 久久av一区二区三区| 欧美人与性动交cc0o| 国产亚洲欧美一区二区| 日韩视频久久| 久久久久久夜精品精品免费| 亚洲国产清纯| 久久se精品一区精品二区| 欧美久久一级| 国内精品嫩模av私拍在线观看| 日韩一级大片在线| 久久久亚洲一区| 在线亚洲一区二区| 欧美.www| 国内成+人亚洲| 亚洲欧美日韩系列| 亚洲精品日本| 久久婷婷麻豆| 国产一区二三区| 亚洲欧美国产高清va在线播| 欧美激情在线| 久久精品91| 国产精品久久久久久久久久尿| 亚洲精品欧美在线| 欧美va天堂| 久久精品欧美日韩| 国产欧美日韩一区二区三区在线观看 |