다음을 통해 공유


ListView.RetrieveVirtualItem 이벤트

정의

ListView가 가상 모드에 있고 ListViewItem이 필요하면 발생합니다.

public:
 event System::Windows::Forms::RetrieveVirtualItemEventHandler ^ RetrieveVirtualItem;
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 속성에 항목이 설정되지 않은 경우

예제

다음 코드 예제에서는이 이벤트에 대 한 처리기를 보여 줍니다. 이 예제에서 listView1은 각각 ListViewItem 인덱스의 정사각형을 표시해야 합니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 VirtualMode 속성입니다.

//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. 이 이벤트는 개체가 개체를 만들어야 ListViewItem 할 때 발생합니다. 이 이벤트의 처리기는 적절한 ListViewItem 를 만들거나 캐시에서 검색하고 속성을 통해 Item 다시 전달해야 합니다.

이벤트 처리에 대한 자세한 내용은 이벤트 처리 및 발생 을 참조하십시오.

적용 대상