ListView   zodpovězená otázka

VB.NET, Komponenty, WinForms

Dobrý den,

Rád bych se zeptal, jeslti se dá nejak zamezit nepříjemnému problikávání u listview. Používam typ zobrazení LargeIcons. A při ruční změně velikosti okna (myši) nebo při odebraní položek a přidání nových do listview to problikává.

Zkoušel jsem nastavit na form DoubleBuffered na True

a take použit metody v listview při aktualizaci dat BeginUpdate a EndUpdate , ale bez úspěchu.

Diky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

DoubleBuffered s tím nemá nic společného. Před přidáváním nebo odstraňováním položek zavolejte BeginUpdate, po skončení EndUpdate. Nevím jestli něco neprovádíte při události SizeChanged, Resize nebo někde jinde, ale mě rozhodně ListView naplněný položkami v režimu LargeIcon neproblikává.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

on asi mysli pri tom pridavani alebo odoberani to aj mne preblikava... teda ak aktualizujem cely zoznam...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

diky za reakci, ale jak píše tady Pán nademnou, pri aktualizaci položek listview, mam tam třeba thumbnails fotek. Při vykreslení položek nepřijemně probliknou.

Používam to takto:

            ListPhotos.BeginUpdate();
            
            ListPhotos.Items.Clear();

            foreach (ListViewItem itm in _items)
            {
                ListPhotos.Items.Add(itm);              
            }

            ListPhotos.EndUpdate();

Pokud se jedna o 100 a více položek v listview je to vidět lépe.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A nedají se ty položky nějakou metodou AddRange přidat všechny najednou? To by mělo být znatelně rychlejší.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ano mate pravdu je to znatelne rychlejsi. Dekuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback