ListView.CacheVirtualItems Zdarzenie
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
public:
event System::Windows::Forms::CacheVirtualItemsEventHandler ^ CacheVirtualItems;
public event System.Windows.Forms.CacheVirtualItemsEventHandler CacheVirtualItems;
public event System.Windows.Forms.CacheVirtualItemsEventHandler? CacheVirtualItems;
member this.CacheVirtualItems : System.Windows.Forms.CacheVirtualItemsEventHandler
Public Custom Event CacheVirtualItems As CacheVirtualItemsEventHandler
Typ wydarzenia
Przykłady
Poniższy przykład kodu przedstawia użycie tego elementu członkowskiego. W tym przykładzie program obsługi zdarzeń sprawdza, czy odświeżanie pamięci podręcznej jest naprawdę konieczne, a następnie ponownie skompiluje pamięć podręczną. Ten przykład kodu jest częścią większego przykładu podanego VirtualMode dla właściwości.
//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());
}
}
'Manages the cache. ListView calls this when it might need a
'cache refresh.
Private Sub listView1_CacheVirtualItems(ByVal sender As Object, ByVal e As CacheVirtualItemsEventArgs) Handles listView1.CacheVirtualItems
'We've gotten a request to refresh the cache.
'First check if it's really neccesary.
If Not (myCache Is Nothing) AndAlso e.StartIndex >= firstItem AndAlso e.EndIndex <= firstItem + myCache.Length Then
'If the newly requested cache is a subset of the old cache,
'no need to rebuild everything, so do nothing.
Return
End If
'Now we need to rebuild the cache.
firstItem = e.StartIndex
Dim length As Integer = e.EndIndex - e.StartIndex + 1 'indexes are inclusive
myCache = New ListViewItem(length) {}
'Fill the cache with the appropriate ListViewItems.
Dim x As Integer = 0
Dim i As Integer
For i = 0 To length
x = (i + firstItem) * (i + firstItem)
myCache(i) = New ListViewItem(x.ToString())
Next i
End Sub
Uwagi
To zdarzenie występuje tylko wtedy, gdy VirtualMode ma wartość true. Obsługa tego zdarzenia umożliwia ListView aktualizację informacji o elemencie przechowywanych w pamięci podręcznej, aby była łatwo dostępna. Może to zwiększyć wydajność na dużych listach lub listach, których elementy są kosztowne do obliczenia.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.