Listview "ruhigstellen"

18/10/2008 - 00:16 von Thomas Hübner | Report spam
Hi NG,

hat jemand eine Lösung einem Listview das flackern abzugewöhnen? Der
Listview ist in Detailansicht und wird alle 5 Sekunden angesprochen.
Meistens werden nur die Inhalte der Subitems geàndert, manchmal per Add
und Remove items zugeführt/ gelöscht. Der Listview "flackert" sogar wenn
man mit der Maus drüberfàhrt. Der LV ist an die Form gedockt - je größer
man die Form zieht umso "kràftiger" wird das flackern.

lvw_Stats.BeginUpdate() (und das Gegenstück) bringen nur marginale
Linderung. Selbst die im Web empfohlene cLockUpdate Klasse (über Api)
das element zu sperren wirkt nicht (auch auf die ganze Form angewendet)

Gibt es noch einen Trick?

Gruß,
Thomas
 

Lesen sie die antworten

#1 Kerem Gümrükcü
18/10/2008 - 01:02 | Warnen spam
Hallo Thomas,

generell gilt:

BeginUpdate()
EndUpdate()

dann doppeltes puffern:

Public Class ListViewEx
Public Sub New()
'reduce flicker
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer Or
ControlStyles.AllPaintingInWmPaint, True)
End Sub

End Class

dann hilft die Behandlung von WM_ERASEBKGND
(ControlStyles.EnableNotifyMessage und dann
in OnNotifyMessage behandeln, oder die ERASEBKGND in der WndProc behandeln),
Du wirst
aber u.U,. bestimmte bereiche deiner LV selber "Updaten" müssen, also
bestimmte "Regions"

Suche nach all dem mal im Netz, da wirst Du
ettliches an Beispielen finden,...


Grüße

Kerem


Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.codeplex.com/restarts
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen