ListView.RetrieveVirtualItem 이벤트

정의

ListView가 가상 모드에 있고 ListViewItem이 필요하면 발생합니다.Occurs when the ListView is in virtual mode and requires a ListViewItem.

public:
 event System::Windows::Forms::RetrieveVirtualItemEventHandler ^ RetrieveVirtualItem;
public event System.Windows.Forms.RetrieveVirtualItemEventHandler RetrieveVirtualItem;
member this.RetrieveVirtualItem : System.Windows.Forms.RetrieveVirtualItemEventHandler 
Public Custom Event RetrieveVirtualItem As RetrieveVirtualItemEventHandler 

예외

Item 이벤트가 처리될 때 RetrieveVirtualItem 속성에 항목이 설정되지 않은 경우The Item property is not set to an item when the RetrieveVirtualItem event is handled.

예제

다음 코드 예제에서는이 이벤트에 대 한 처리기를 보여 줍니다.The following code example demonstrates a handler for this event. 이 예제에서 listView1는 각 ListViewItem에서 해당 인덱스의 제곱을 표시 해야 합니다.In this example, listView1 needs each ListViewItem to display the square of its index. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 VirtualMode 속성입니다.This code example is part of a larger example provided for the VirtualMode property.

//The basic VirtualMode function.  Dynamically returns a ListViewItem
//with the required properties; in this case, the square of the index.
void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
    //Caching is not required but improves performance on large sets.
    //To leave out caching, don't connect the CacheVirtualItems event 
    //and make sure myCache is null.

    //check to see if the requested item is currently in the cache
    if (myCache != null && e.ItemIndex >= firstItem && e.ItemIndex < firstItem + myCache.Length)
    {
        //A cache hit, so get the ListViewItem from the cache instead of making a new one.
        e.Item = myCache[e.ItemIndex - firstItem];
    }
    else
    {
        //A cache miss, so create a new ListViewItem and pass it back.
        int x = e.ItemIndex * e.ItemIndex;
        e.Item = new ListViewItem(x.ToString());
    }
}
'The basic VirtualMode function.  Dynamically returns a ListViewItem
'with the required properties; in this case, the square of the index.
Private Sub listView1_RetrieveVirtualItem(ByVal sender As Object, ByVal e As RetrieveVirtualItemEventArgs) Handles listView1.RetrieveVirtualItem
    'Caching is not required but improves performance on large sets.
    'To leave out caching, don't connect the CacheVirtualItems event 
    'and make sure myCache is null.
    'check to see if the requested item is currently in the cache
    If Not (myCache Is Nothing) AndAlso e.ItemIndex >= firstItem AndAlso e.ItemIndex < firstItem + myCache.Length Then
        'A cache hit, so get the ListViewItem from the cache instead of making a new one.
        e.Item = myCache((e.ItemIndex - firstItem))
    Else
        'A cache miss, so create a new ListViewItem and pass it back.
        Dim x As Integer = e.ItemIndex * e.ItemIndex
        e.Item = New ListViewItem(x.ToString())
    End If


End Sub

설명

ListView 개체가 가상 모드에 있는 경우 Items 컬렉션을 사용 하는 대신 ListViewItem 개체를 동적으로 만듭니다.When a ListView object is in virtual mode, it creates ListViewItem objects dynamically instead of using the Items collection. 이 이벤트는 개체가 ListViewItem 개체를 만들어야 할 때 발생 합니다.This event is raised when the object must create a ListViewItem object. 이 이벤트에 대 한 처리기는 적절 한 ListViewItem를 만들거나 캐시에서 검색 한 다음 Item 속성을 통해 다시 전달 해야 합니다.A handler for this event should create the appropriate ListViewItem or retrieve it from the cache, and pass it back by way of the Item property.

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

적용 대상