[C#] WinForms CheckedListBox OwnerDraw

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod milanc 2. 4. 2021 23:16

Ahoj,

snažil jsem se vytvořit kopii komponenty CheckedListBox, protože originál neumí vlastnost disable na konkrétních itemech-checkboxech. Ale nechová se mi to úplně dobře. Pokud kliknu na disabled položku, tak to překreslení je jakoby posunuté a vytvoří se jakýsi stín. Polohou to není, pokud umístění šoupnu, šoupne se i tento "stín". Jakoby nějaký styl nebo cleartype, ale odkud by se to pralo, když vlastnosti kopíruji? Je to vidět tady, po kliku na poslední checkbox... https://snipboard.io/8eDVuI.jpg.

Celá třída upravené komponenty včetně metody OnDrawItem:
https://pastebin.com/pDchmxAf
milanc
Junior
Uživatelský avatar

Odeslat příspěvekod Just_jo 10. 4. 2021 13:47

Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod milanc 10. 4. 2021 14:10

Problém byl v tom, že jsem v OwnerDraw neprováděl překreslení pozadí, ale rovnou jsem vypsal text. Je to tedy divné, ale po přidání e.DrawBackground() do OwnerDraw se to již chová jak má a vůbec se nezdá, že by se text na pozici třeba nějak pohnul.
milanc
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků