日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 解决LISTVIEW控件显示数据出现闪屏的问题

發布時間:2025/4/16 C# 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 解决LISTVIEW控件显示数据出现闪屏的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉自:https://www.cnblogs.com/yangxuli/p/7595794.html,為了尊重作者原創,轉載請注明出處。

一、發現問題

如果發送數據過快的情況下,ListVies滾屏顯示數據時會顯示閃屏,如下所示現象:

二、解決問題

根據出現閃屏的情況,在網上查了資料要使用雙緩存的辦法來處理。其原理是數據在緩存區中進行處理,處理之后再把結果顯示出來。

自己先新定義一個ListViewBuff類:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; //增加引入窗體命名空間,支持窗體相關的類namespace WzCan_DeviceExploer {class ListViewBuff : System.Windows.Forms.ListView //自定義一個類ListViewBuff 繼承自System.Windows.Forms.ListView{public ListViewBuff(){this.SetStyle( //設置控件的樣式和行為ControlStyles.DoubleBuffer| //繪制在緩沖區中進行,完成后將結果輸出到屏幕上。雙重緩沖區可防止由控件重繪引起的閃爍ControlStyles.OptimizedDoubleBuffer| //控件首先在緩沖區中繪制,而不是直接繪制到屏幕上,這樣可以減少閃爍ControlStyles.AllPaintingInWmPaint,true); //控件將忽略WM_ERASEBKGND(當窗口背景必須被擦除時 例如窗口改變大小時)窗口消息以減少閃爍UpdateStyles(); //更新控件的樣式和行為}} }

然后找到窗體Forms程序中定義LiewView的位置:

private System.Windows.Forms.ListView CanBuslistView;this.CanBuslistView = new System.Windows.Forms.ListView();

修改成如下:

private ListViewBuff CanBuslistView; //yxl test add 增加listview雙緩存處理 2017.09.26 this.CanBuslistView = new WzCan_DeviceExploer.ListViewBuff(); //增加雙緩存 add yxl 2017.09.26

添加雙緩存后不會有閃屏的現象,實現效果如下:

三、參考資料

http://www.cnblogs.com/94cool/archive/2013/02/06/2899995.html
http://www.cnblogs.com/JiYF/p/6233313.html
http://www.cnblogs.com/1175429393wljblog/p/5684090.html
http://www.mamicode.com/info-detail-1242649.html

總結

以上是生活随笔為你收集整理的C# 解决LISTVIEW控件显示数据出现闪屏的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。