ListView.CacheVirtualItems ListView.CacheVirtualItems ListView.CacheVirtualItems ListView.CacheVirtualItems Event

정의

가상 모드에 있는 ListView의 표시 영역 내용이 변경되고 ListView에서 새로운 항목 범위가 필요하다고 결정하면 발생합니다.Occurs when the contents of the display area for a ListView in virtual mode has changed, and the ListView determines that a new range of items is needed.

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 

예제

다음 코드 예제에서는이 멤버를 사용 하는 방법을 보여 줍니다.The following code example demonstrates the use of this member. 예제에서는 이벤트 처리기에서는 캐시 새로 고침을 실제로 필요 하며, 그런 다음 캐시를 다시 빌드하고 있는지 확인 합니다.In the example, the event handler checks to make sure a cache refresh is really necessary, and then rebuilds the cache. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 VirtualMode 속성입니다.This code example is part of a larger example provided for the VirtualMode property.

//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

설명

이 이벤트에만 발생 하면 VirtualModetrue합니다.This event only occurs when VirtualMode is true. 이 이벤트를 처리할 수 있습니다는 ListView 항목 정보를 업데이트 하려면 캐시에 보유 쉽게 사용할 수 있도록 합니다.Handling this event allows the ListView to update the item information held in the cache so that it is readily available. 긴 목록 또는 목록 항목이 있는 데 비용이 많이 드는 계산 성능이 향상 됩니다.This can improve performance on large lists, or lists whose items are expensive to calculate.

이벤트 처리에 대한 자세한 내용은 이벤트 처리 및 발생 을 참조하십시오.For more information about handling events, see Handling and Raising Events.

적용 대상