Flackern der ListBox verhindern

  • C#

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMiy.

    Jonas Jelonek schrieb:

    e.Graphics.Clear(Color.White);


    Schon mal versucht diese Zeile rauszunehmen? Die sieht mir ziemlich überflüssig aus, zumal du später mit dem VisualRenderer eh den Background nochmal drüberlegst.
    Wenns aber jetzt "flackert wie Sau", wird das vermutlich auch nicht viel bringen.
    Wie oft wird denn so ein Item aktualisiert? Vllt. reicht es ja schon das Aktualisierungsintervall nicht bei jeder klitzekleinen Änderung aufzurufen sondern - sagen wir mal - nur alle 200 Millisekunden.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    Ich habe hier was sehr interessantes gefunden stackoverflow.com/questions/1131912/double-buffered-listbox
    Allerdings muss man das auf den VisualStyleRenderer anwenden. Da bin ich gerade dran.
    Benutzen musst du dazu das hier.

    VB.NET-Quellcode

    1. [DllImport("gdi32.dll", SetLastError = true)]
    2. [return: MarshalAs(UnmanagedType.Bool)]
    3. private static extern bool BitBlt(IntPtr hdc, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, TernaryRasterOperations dwRop);
    4. enum TernaryRasterOperations : uint
    5. {
    6. /// <summary>dest = source</summary>
    7. SRCCOPY = 0x00CC0020,
    8. /// <summary>dest = source OR dest</summary>
    9. SRCPAINT = 0x00EE0086,
    10. /// <summary>dest = source AND dest</summary>
    11. SRCAND = 0x008800C6,
    12. /// <summary>dest = source XOR dest</summary>
    13. SRCINVERT = 0x00660046,
    14. /// <summary>dest = source AND (NOT dest)</summary>
    15. SRCERASE = 0x00440328,
    16. /// <summary>dest = (NOT source)</summary>
    17. NOTSRCCOPY = 0x00330008,
    18. /// <summary>dest = (NOT src) AND (NOT dest)</summary>
    19. NOTSRCERASE = 0x001100A6,
    20. /// <summary>dest = (source AND pattern)</summary>
    21. MERGECOPY = 0x00C000CA,
    22. /// <summary>dest = (NOT source) OR dest</summary>
    23. MERGEPAINT = 0x00BB0226,
    24. /// <summary>dest = pattern</summary>
    25. PATCOPY = 0x00F00021,
    26. /// <summary>dest = DPSnoo</summary>
    27. PATPAINT = 0x00FB0A09,
    28. /// <summary>dest = pattern XOR dest</summary>
    29. PATINVERT = 0x005A0049,
    30. /// <summary>dest = (NOT dest)</summary>
    31. DSTINVERT = 0x00550009,
    32. /// <summary>dest = BLACK</summary>
    33. BLACKNESS = 0x00000042,
    34. /// <summary>dest = WHITE</summary>
    35. WHITENESS = 0x00FF0062,
    36. /// <summary>
    37. /// Capture window as seen on screen. This includes layered windows
    38. /// such as WPF windows with AllowsTransparency="true"
    39. /// </summary>
    40. CAPTUREBLT = 0x40000000
    41. }