Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

ListView.CacheVirtualItems événement

 

Date de publication : novembre 2016

Se produit lorsque le contenu de la zone d’affichage pour un ListView en mode virtuel a changé et le ListView détermine qu’une nouvelle plage d’éléments est nécessaire.

Espace de noms:   System.Windows.Forms
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

public event CacheVirtualItemsEventHandler CacheVirtualItems

Cet événement se produit uniquement lorsque VirtualMode est true. La gestion de cet événement permet le ListView pour mettre à jour les informations d’élément mises en cache afin qu’il soit immédiatement disponible. Cela peut améliorer les performances sur les grandes listes ou des listes dont les éléments sont coûteuses à calculer.

Pour plus d’informations sur la gestion des événements, consultez la page gestion et déclenchement d’événements.

L'exemple de code suivant illustre l'utilisation de ce membre. Dans l’exemple, le Gestionnaire d’événements vérifie pour vous assurer une actualisation du cache est réellement nécessaire et reconstruit ensuite le cache. Cet exemple de code fait partie d’un exemple plus complet fourni pour le VirtualMode propriété.

//Manages the cache.  ListView calls this when it might need a 
//cache refresh.
void listView1_CacheVirtualItems(object sender, CacheVirtualItemsEventArgs e)
{
    //We've gotten a request to refresh the cache.
    //First check if it's really neccesary.
    if (myCache != null && e.StartIndex >= firstItem && e.EndIndex <= firstItem + myCache.Length)
    {
        //If the newly requested cache is a subset of the old cache, 
        //no need to rebuild everything, so do nothing.
        return;
    }

    //Now we need to rebuild the cache.
    firstItem = e.StartIndex;
    int length = e.EndIndex - e.StartIndex + 1; //indexes are inclusive
    myCache = new ListViewItem[length];

    //Fill the cache with the appropriate ListViewItems.
    int x = 0;
    for (int i = 0; i < length; i++)
    {
        x = (i + firstItem) * (i + firstItem);
        myCache[i] = new ListViewItem(x.ToString());
    }

}

.NET Framework
Disponible depuis 2.0
Retour au début
Afficher: