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

隨筆 - 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>
            香蕉成人久久| 久久国产精品99国产精| 欧美激情精品久久久久久变态| 亚洲欧美综合v| 亚洲欧美日韩在线一区| 亚洲欧美日韩高清| 欧美制服第一页| 久久免费视频网站| 欧美精品一区视频| 国产精品久久一级| 经典三级久久| 99在线热播精品免费99热| 亚洲男人天堂2024| 老司机免费视频一区二区| 亚洲国产日韩欧美在线图片| 欧美粗暴jizz性欧美20| 日韩一区二区精品视频| 欧美在线综合| 欧美婷婷在线| 在线免费观看日本欧美| 亚洲性人人天天夜夜摸| 久久在线视频在线| 日韩视频不卡| 久久精品论坛| 欧美性理论片在线观看片免费| 韩日精品视频| 亚洲一区二区三区高清不卡| 模特精品裸拍一区| 亚洲自拍都市欧美小说| 欧美激情综合网| 精品99一区二区三区| 亚洲伊人第一页| 亚洲二区在线视频| 久久国产精品久久久久久电车| 欧美日韩亚洲免费| 尤物网精品视频| 欧美一区二区三区久久精品茉莉花 | 国语自产精品视频在线看| 99精品视频免费全部在线| 久久青青草综合| 一区二区三区视频在线| 老司机免费视频久久| 国产亚洲精品福利| 午夜精品美女自拍福到在线| 欧美人与禽猛交乱配| 在线观看欧美黄色| 久久久久看片| 性色av一区二区三区| 国产精品美女久久久浪潮软件| 99精品视频免费| 亚洲精品免费网站| 欧美精品久久一区二区| 亚洲激情网址| 国产精品久久久久久久电影| 免费不卡在线视频| 在线观看国产精品淫| 久久激情视频久久| 午夜精品av| 国产亚洲日本欧美韩国| 欧美在线关看| 欧美中文字幕视频| 一区二区亚洲精品国产| 欧美成年人视频| 你懂的亚洲视频| 亚洲精品一区二区在线| 亚洲福利免费| 欧美老女人xx| 午夜精品一区二区三区四区| 亚洲欧美日本精品| 韩国精品在线观看| 免费欧美日韩国产三级电影| 麻豆国产精品一区二区三区| 亚洲人午夜精品| 亚洲精品视频免费| 欧美高清视频一区| 亚洲综合清纯丝袜自拍| 香蕉av777xxx色综合一区| 国产曰批免费观看久久久| 免费看黄裸体一级大秀欧美| 欧美精品免费在线观看| 亚洲欧美另类综合偷拍| 午夜精品美女久久久久av福利| 国产一区导航| 91久久久久| 国产乱码精品| 欧美激情无毛| 国产精品日韩| 免费亚洲电影| 欧美日韩亚洲免费| 久久精精品视频| 欧美成人久久| 欧美一区二区女人| 另类激情亚洲| 亚洲欧美影音先锋| 久久综合九色| 欧美一区二区久久久| 免费欧美在线视频| 91久久亚洲| 国内精品久久国产| 日韩一区二区精品葵司在线| 国内激情久久| 亚洲香蕉网站| 亚洲人成网站999久久久综合| 在线亚洲免费视频| 亚洲风情在线资源站| 亚洲欧美电影在线观看| 亚洲三级免费观看| 亚洲欧美影院| 亚洲一区二区三区三| 欧美va亚洲va国产综合| 久久人人超碰| 国产精品久久久亚洲一区 | 亚洲人永久免费| 很黄很黄激情成人| 亚洲综合视频在线| 精品二区视频| 亚洲黄色av一区| 亚洲综合首页| 亚洲一区欧美一区| 欧美福利一区二区| 久久精品一区中文字幕| 欧美日韩不卡在线| 欧美成人免费小视频| 黄页网站一区| 欧美一级欧美一级在线播放| 亚洲调教视频在线观看| 欧美久久久久| 亚洲欧洲视频在线| 亚洲精品一区二区三区在线观看 | 欧美一级一区| 欧美三级资源在线| 99国产精品99久久久久久粉嫩 | 一本色道久久| 欧美精品一区三区| 亚洲欧洲精品天堂一级| 日韩视频免费看| 欧美国产高潮xxxx1819| 亚洲国产成人在线播放| 亚洲免费激情| 欧美日韩亚洲综合一区| 中文无字幕一区二区三区| 亚洲欧美中文在线视频| 国产麻豆日韩| 久久久久免费视频| 亚洲国产精品久久久久婷婷老年 | 久久婷婷久久一区二区三区| 激情丁香综合| 欧美va亚洲va国产综合| 日韩亚洲精品电影| 亚洲在线不卡| 国产一区二区三区不卡在线观看 | 亚洲国产成人高清精品| 一区二区三区在线观看欧美 | 欧美激情在线播放| 日韩午夜中文字幕| 欧美在线999| 亚洲高清在线视频| 欧美理论电影在线观看| 亚洲欧美日韩一区二区三区在线| 久久亚洲高清| 一本色道久久综合精品竹菊| 国产精品一区二区久久久久| 久久精品一区二区三区不卡| 亚洲激情视频| 久久av二区| 亚洲精品一区二区在线| 国产精品igao视频网网址不卡日韩| 午夜精品久久久久久久99热浪潮| 欧美国产大片| 欧美影视一区| 99精品欧美一区| 国产一区二区三区免费观看| 牛夜精品久久久久久久99黑人| 亚洲桃花岛网站| 亚洲高清视频一区| 亚洲激情在线激情| 亚洲精品在线观| 国产乱子伦一区二区三区国色天香| 久久久久在线| 制服丝袜亚洲播放| 欧美成人精品| 久久精品青青大伊人av| 99精品视频一区| 激情久久五月天| 国产精品一卡二卡| 欧美日本一区二区高清播放视频| 久久国产精品久久国产精品| 一区二区三区欧美在线观看| 欧美成人精品一区| 久久激情网站| 午夜精品视频在线| 一区二区三区 在线观看视| 尤物yw午夜国产精品视频| 国产精品女主播| 欧美日韩一区二区免费视频| 欧美成人69av| 狂野欧美激情性xxxx| 欧美中文字幕在线观看| 午夜精品一区二区三区在线视 | 亚洲日韩欧美一区二区在线|