我正在使用listview(listView1),當我填充數據到它(每秒添加10行)時閃爍。如何在c#中加倍緩衝區列表視圖。 (一步一步)
如何啓用雙緩衝區屬性使其無閃爍。
請給我一步一步的指示。我是c#的新手。
我正在使用listview(listView1),當我填充數據到它(每秒添加10行)時閃爍。如何在c#中加倍緩衝區列表視圖。 (一步一步)
如何啓用雙緩衝區屬性使其無閃爍。
請給我一步一步的指示。我是c#的新手。
這裏的一個選擇是隻更新listview數據源,以便您不直接訪問您的控件,只有基礎數據源。
DataTable dt = new DataTable();
//load the Datatable with items from your external hardware connection.
myListView.datasource = dt;
然後,您只更新DataTable,而不是控件的項目列表。使用雙緩衝,您應該看到您需要的影響。
最後,每秒100個listview項目很多,你需要在listview中有這麼多項目嗎?我建議將此列表過濾爲僅當時需要的項目,將使其性能更好。
在每秒100行時,您將需要雙緩衝和虛擬模式。
雙緩衝需要子類化ListView並設置DoubleBuffered
保護屬性。虛擬模式需要將行數設置爲VirtualSize
,然後響應RetrieveVirtualItem
事件。
你應該認真考慮使用ObjectListView這是一個圍繞.NET ListView的開源包裝,可以解決大量問題,所以你不必這樣做。
posible dupliacte http://stackoverflow.com/questions/87795/how-to-prevent-flickering-in-listview-when-updating-a-single-listviewitems-text – DragonZero
我試過這個。但是由於我填充速度非常快,所以它凍結了我的應用程序。 – Jake
可以發佈示例代碼,以便我們可以看到發生了什麼? – DragonZero